//For this class CanBeShort/Long indicate whether the unit can attack from these ranges
        public CharacterUnit(Loading.UnitCardData Data) : base(Data)
        {
            AttackCost = 1;
            Modules.Attack.AttackModule M1 = new Modules.Attack.BasicAttack();
            M1.Setup(this, null);
            AMCombiner.Attack.Add(M1);

            Modules.Target.TargettingModule M2 = new Modules.Target.DefaultTargetting();
            M2.Setup(this, null);
            TMCombiner.Add(M2);

            Modules.Target.TargettingModule M3 = new Modules.Target.DefaultCost();
            M3.Setup(this, null);
            TMCombiner.Add(M3);

            Modules.Target.BlockingModule M4 = new Modules.Target.DefaultBlocking();
            M4.Setup(this, null);
            BlockingModules.Add(M4);

            Modules.Target.BeingTargetedModule
                M5 = new Modules.Target.DefaultIsBlocked();
            M5.Setup(this, null);
            BeingTargetedModules.Add(M5);

            Modules.Target.TargettingModule M6 = new Modules.Target.OneAttackPerTurn();
            M6.Setup(this, null);
            TMCombiner.Add(M6);

            Actions.Add(new ActionInfo("Move", new Move_Action(true, 0), PlayerType.NA, 0, 0));
            Actions.Add(new ActionInfo("Attach", new Attach_Action(true, 0), PlayerType.Ally, 1, 1));
        }
示例#2
0
        public BasicUnit(Loading.UnitCardData Data) : base(Data)
        {
            AttackCost = 2;

            Modules.Attack.AttackModule M1 = new Modules.Attack.BasicAttack();
            M1.Setup(this, null);
            AMCombiner.Attack.Add(M1);

            Modules.Target.TargettingModule M2 = new Modules.Target.DefaultTargetting();
            M2.Setup(this, null);
            TMCombiner.Add(M2);

            Modules.Target.TargettingModule M3 = new Modules.Target.DefaultCost();
            M3.Setup(this, null);
            TMCombiner.Add(M3);

            Modules.Target.BlockingModule M4 = new Modules.Target.DefaultBlocking();
            M4.Setup(this, null);
            BlockingModules.Add(M4);

            Modules.Target.BeingTargetedModule M5 = new Modules.Target.DefaultIsBlocked();
            M5.Setup(this, null);
            BeingTargetedModules.Add(M5);

            Modules.Target.TargettingModule M6 = new Modules.Target.OneAttackPerTurn();
            M6.Setup(this, null);
            TMCombiner.Add(M6);
        }
示例#3
0
        public Unit(Loading.UnitCardData Data)
        {
            BaseAttack = Data.Attack;
            BaseHealth = Data.Health;
            BaseVP     = Data.Victory;
            Name       = Data.mName;
            CanBeShort = Data.CanBeShort;
            CanBeLong  = Data.CanBeLong;

            Actions.Add(new ActionInfo("Attack", new Attack_Action(false, 0), PlayerType.Enemy, 1, 1));

            if (Data.mActions != null)
            {
                foreach (Loading.ActionData actionData in Data.mActions)
                {
                    if (actionData.mIsPlaced)
                    {
                        PAHolder.AddAction(Loading.CardLoading.GetActionInfoFromData(actionData));
                    }

                    else
                    {
                        Actions.Add(Loading.CardLoading.GetActionInfoFromData(actionData));
                    }
                }
            }

            if (Data.mModules != null)
            {
                foreach (Loading.ModuleData MD in Data.mModules)
                {
                    Modules.Module M = Loading.CardLoading.GetModuleFromData(MD);
                    M.Setup(this, MD);
                    AddModule(MD.Type, M);
                }
            }
            Classes = new List <string>(Data.Classes);
        }