コード例 #1
0
        public override ActionResult Perform(ITurnable turnable, TurnResult result)
        {
            Creature creature = turnable as Creature;

            if (X != 0)
            {
                creature.SpriteEffect = X > 0 ? SpriteEffects.FlipHorizontally : SpriteEffects.None;
            }

            int newX = creature.X + X;
            int newY = creature.Y + Y;

            if (!creature.Map.InBounds(newX, newY) || creature.Map.GetTile(newX, newY).IsSolid)
            {
                result.AddEvent(new BumpEvent(X, Y, 9f, creature));
                return(Succeed());
            }

            Creature other = creature.Map.GetCreature(newX, newY);

            if (other != null)
            {
                result.AddEvent(new BumpEvent(X, Y, 9f, creature));
                return(Succeed());
            }

            result.AddEvent(new MoveEvent(creature, creature.X, creature.Y, newX, newY, 4f, 0.3f));
            creature.X += X;
            creature.Y += Y;

            return(Succeed());
        }
コード例 #2
0
 public EnemyState(IStateEnter enter, IStateExit exit, IStateUpdate update,
                   ITurnable turnable, ITitanShield titanShield)
     : base(enter, exit, update)
 {
     _turnable    = turnable;
     _titanShield = titanShield;
 }
コード例 #3
0
        public static void Main(string[] args)
        {
            IWentylatornaFabryka fabryka = new DekoratorowaFabryka();
            ITurnable            went1   = fabryka.utworzWentylator();
            ITurnable            went2   = fabryka.utworzWentylator();

            went1.wlacz();
            went2.wlacz();

            went1.wylacz();

            went1.wlacz();
            went1.wylacz();

            went1.wlacz();
            went1.wylacz();

            Console.WriteLine(String.Format("Wentylator #1: {0}", went1.status()));
            Console.WriteLine(String.Format("Wentylator #2: {0}", went2.status()));
        }
コード例 #4
0
 public EnemyState_Kill(IStateEnter enter, IStateExit exit, IStateUpdate update,
                        ITurnable turnable, ITitanShield titanShield)
     : base(enter, exit, update, turnable, titanShield)
 {
 }
コード例 #5
0
 public void removeTurn(ITurnable turnable)
 {
     turnList.Remove(turnable);
 }
コード例 #6
0
 public void registerTurn(ITurnable turnable)
 {
     turnList.Add(turnable);
 }
コード例 #7
0
 public BasicMove(ITurnable user) : base(user)
 {
 }
コード例 #8
0
 public abstract ActionResult Perform(ITurnable turnable, TurnResult result);
コード例 #9
0
 public AbstractAction(ITurnable user)
 {
     this.user = user;
 }
コード例 #10
0
ファイル: PlayerState.cs プロジェクト: leejinu81/MisticPuzzle
 public PlayerState(IStateEnter enter, IStateExit exit, IStateUpdate update, ITurnable turnable)
     : base(enter, exit, update)
 {
     _turnable = turnable;
 }
コード例 #11
0
 public TurnRightCommand(ITurnable rover, Rotate rotate)
 {
     _rotate = rotate;
     _rover  = rover;
 }
コード例 #12
0
 private static void TurnOnTurnable(ITurnable turnable)
 {
     turnable.TurnOn();
 }
コード例 #13
0
 public WentylatorDekorator(WentylatorFacade wentylator)
 {
     this.wentylator = wentylator;
     this.wlaczenia  = 0;
     this.wylaczenia = 0;
 }
コード例 #14
0
 public AbstractEffect(ITurnable target)
 {
     this.target = target;
 }
コード例 #15
0
 public takeDamage(int damage, ITurnable target) : base(target)
 {
     this.damage = damage;
 }