public Bullet(int v, int h, int speed = 1, int flying_distance = 10, GameDef.Towards tw = GameDef.Towards.Left, int dmg = 10) { this.pos_v = v; this.pos_h = h; this.speed = speed; this.flying_time = 0; this.flying_distance = flying_distance; this.towards = tw; this.damage = dmg; }
public override GameDef.UseSkillStatus UseSkill(GameDef.Towards tw, int orignal_v, int orignal_h) { if (remain_use_time == 0) { return(GameDef.UseSkillStatus.RunOutTimes); } Debug.WriteLine("Fire!!!!!!!!!!!!!! remain time {0}", remain_use_time); BulletManager.Add(new Bullet(orignal_v, orignal_h, 1, 10, tw)); remain_use_time--; return(GameDef.UseSkillStatus.Success); }
/* * Update snake linked list position record * No vaild move check! * No tail adding logic */ public void move(GameDef.Action d) { int dh = 0, dv = 0; if (this.towards != (GameDef.Towards)d) { this.towards = (GameDef.Towards)d; return; } GameDef.Towards towards = 0;; switch (d) { case GameDef.Action.left: dh = -1; towards = GameDef.Towards.Left; break; case GameDef.Action.Right: dh = 1; towards = GameDef.Towards.Right; break; case GameDef.Action.Up: dv = -1; towards = GameDef.Towards.Up; break; case GameDef.Action.Down: dv = 1; towards = GameDef.Towards.Down; break; default: dv = 0; dh = 0; break; } this.towards = towards; LiftUpElement(); if (!gsm.canMoveTo(this.pos_v + dv, this.pos_h + dh)) { return; } this.pos_v += dv; this.pos_h += dh; }
public virtual GameDef.UseSkillStatus UseSkill(GameDef.Towards tw, int orignal_v, int orignal_h) { return(GameDef.UseSkillStatus.Success); }