source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Units/UnitKing.cs @ 4694

Revision 4694, 2.2 KB checked in by dezhidki, 7 years ago (diff)

Guit lisätty, AIn viimestely.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using CastleMaster.World;
6using CastleMaster.Players;
7using CastleMaster.Graphics;
8
9namespace CastleMaster.Units
10{
11    public class UnitKing : Unit
12    {
13        private bool isDestroyed = false;
14        private int timesHit = 0;
15       
16        public UnitKing(Level level, Player owner)
17            : base(level, owner)
18        {
19            width = 5 * Viewport.TILESIZE;
20            depth = 5 * Viewport.TILESIZE;
21            HasHealth = true;
22            maxHealth = 400;
23
24            isSolid = true;
25
26            renderOffset.X = 64;
27            renderOffset.Y = 80;
28
29            spriteSize.X = 160;
30            spriteSize.Y = 128;
31            screenRectOffset.Update(0, 0, spriteSize.X, spriteSize.Y);
32
33            highlightOffset.X = spriteSize.X / 2 - 4;
34
35            rectOffset.Update(-2 * Viewport.TILESIZE, -2 * Viewport.TILESIZE, 2 * Viewport.TILESIZE, 2 * Viewport.TILESIZE);
36            immunityTime = 20;
37        }
38
39        public int TimesHit { get { return timesHit; } }
40
41        public bool IsDestroyed { get { return isDestroyed; } }
42
43        public override void Damage(Unit attacker, int damage, float dir, float pushPower)
44        {
45            base.Damage(attacker, damage, dir, pushPower);
46            timesHit++;
47        }
48
49        public override void OnRemoved()
50        {
51            int xTile = (int)(X / Viewport.TILESIZE);
52            int zTile = (int)(Z / Viewport.TILESIZE);
53
54            for (int x = xTile - 4; x <= xTile + 4; x++)
55            {
56                if (x < 0 || x >= level.Width) continue;
57                for (int z = zTile - 4; z <= zTile + 4; z++)
58                {
59                    if (z < 0 || z >= level.Height) continue;
60
61                    level.SetTile(x, z, 1);
62                    level.SetData(x, z, 0);
63                }
64            }
65
66            level.RemoveUnit(this);
67        }
68
69        public override void Render(RenderHelper renderer)
70        {
71            renderer.Render(ScreenPos, 0, 0, Resources.SPRITE_KING, colorizer, Viewport.ZOOM);
72            base.Render(renderer);
73        }
74    }
75}
Note: See TracBrowser for help on using the repository browser.