コード例 #1
0
        public void ArmoredSwordsmanVsHighlander()
        {
            Highlander highlander = new Highlander();

            Swordsman swordsman = new Swordsman()
                                  .Equip("buckler")
                                  .Equip("armor");

            swordsman.Engage(highlander);

            Assert.AreEqual(0, swordsman.HitPoints());
            Assert.AreEqual(10, highlander.HitPoints());
        }
コード例 #2
0
        public void SwordsmanWithBucklerVsVikingWithBuckler()
        {
            Swordsman swordsman = new Swordsman()
                                  .Equip("buckler");

            Viking viking = new Viking()
                            .Equip("buckler");

            swordsman.Engage(viking);

            Assert.AreEqual(0, swordsman.HitPoints());
            Assert.AreEqual(70, viking.HitPoints());
        }
コード例 #3
0
        public void CellChange()
        {
            var map       = new Map("P  ");
            var level     = new Level("test", map);
            var swordsman = new Swordsman(true);

            map.AddCharacter(swordsman);
            var messagesCount = 0;

            level.CellChange += (x, y, creature) => messagesCount++;
            swordsman.Doing   = new Movement(swordsman, 1, 0);
            swordsman.DoAction(level);
            Assert.AreEqual(2, messagesCount);
        }
コード例 #4
0
        public void CanAttackUnit_Swordsman(int x, int y, bool canAttack)
        {
            const int startPositionX = 10;
            const int startPositionY = 10;

            Player         Player1        = new Player(1, "Игрок №1", null);
            Player         Player2        = new Player(2, "Игрок №2", null);
            Swordsman      Swordsman      = new Swordsman(Player1, startPositionX, startPositionY);
            Archer         Target         = new Archer(Player2, x, y);
            Map            Map            = CreateMap(units: new object[] { Swordsman, Target });
            GameController GameController = new GameController(Map);

            Assert.AreEqual(canAttack, GameController.CanAttackUnit(Swordsman, Target));
        }
コード例 #5
0
        public void ViciousSwordsmanVsVeteranHighlander()
        {
            Swordsman swordsman = new Swordsman("Vicious")
                                  .Equip("axe")
                                  .Equip("buckler")
                                  .Equip("armor");

            Highlander highlander = new Highlander("Veteran");

            swordsman.Engage(highlander);

            Assert.AreEqual(1, swordsman.HitPoints());
            Assert.AreEqual(0, highlander.HitPoints());
        }
コード例 #6
0
        public void CanAttackUnit_Swordsman(int x, int y, bool canAttack)
        {
            const int startPositionX = 10;
            const int startPositionY = 10;

            var player1        = new Player(1, "Игрок №1", null);
            var player2        = new Player(2, "Игрок №2", null);
            var swordsman      = new Swordsman(player1, startPositionX, startPositionY);
            var target         = new Archer(player2, x, y);
            var map            = CreateMap(units: new Unit[] { swordsman, target });
            var gameController = new GameController(map);

            Assert.AreEqual(canAttack, gameController.CanAttackUnit(swordsman, target));
        }
コード例 #7
0
        public void CanMoveUnit_SwordsmanOnEmptyMap(int x, int y, bool canMove)
        {
            const int startPositionX = 10;
            const int startPositionY = 10;

            var player    = new Player(1, "Игрок №1", null);
            var swordsman = new Swordsman(player)
            {
                X = startPositionX, Y = startPositionY
            };
            var map            = CreateMap(units: new[] { swordsman });
            var gameController = new GameController(map);

            Assert.AreEqual(canMove, gameController.CanMoveUnit(swordsman, x, y));
        }
コード例 #8
0
        public IUnit CreateUnit(string sourceBuilding)
        {
            switch (sourceBuilding)
            {
            case "archery":
                var archer = new Archer();
                return(archer);

            case "barracks":
                var swordsman = new Swordsman();
                return(swordsman);

            default:
                throw new ArgumentException("Unkonwn type buildin");
            }
        }
コード例 #9
0
        public void MoveUnit_AllTypes()
        {
            const int movePositionX = 15;
            const int movePositionY = 15;

            var player         = new Player(1, "Игрок №1", null);
            var map            = CreateMap();
            var gameController = new GameController(map);


            var archer = new Archer(player)
            {
                X = 14, Y = 14
            };

            gameController.MoveUnit(archer, movePositionX, movePositionY);
            Assert.AreEqual(movePositionX, archer.X);
            Assert.AreEqual(movePositionY, archer.Y);

            var catapult = new Catapult(player)
            {
                X = 14, Y = 14
            };

            gameController.MoveUnit(catapult, movePositionX, movePositionY);
            Assert.AreEqual(movePositionX, catapult.X);
            Assert.AreEqual(movePositionY, catapult.Y);

            var horseman = new Horseman(player)
            {
                X = 14, Y = 14
            };

            gameController.MoveUnit(horseman, movePositionX, movePositionY);
            Assert.AreEqual(movePositionX, horseman.X);
            Assert.AreEqual(movePositionY, horseman.Y);

            var swordsman = new Swordsman(player)
            {
                X = 14, Y = 14
            };

            gameController.MoveUnit(swordsman, movePositionX, movePositionY);
            Assert.AreEqual(movePositionX, swordsman.X);
            Assert.AreEqual(movePositionY, swordsman.Y);
        }
コード例 #10
0
        public override void Update()
        {
            base.Update();

            if (this.CycleCounter % 3 == 0 && this.CycleCounter != 0)
            {
                var steel = new Steel();
                this.AddResource(steel);
                this.ResourceCycle = 0;
            }
            if (this.CycleCounter % 4 == 0 && this.CycleCounter != 0)
            {
                var swordsman = new Swordsman();
                this.AddUnit(swordsman);
                this.Engine.DB.AddUnit(swordsman);
                this.UnitCycle = 0;
            }
        }
コード例 #11
0
        public void GetObjectCoordinates_AllTypes()
        {
            Player         Player         = new Player(1, "Игрок №1", null);
            Map            Map            = new Map(null, null);
            GameController GameController = new GameController(Map);


            Archer      Archer            = new Archer(Player, 1, 2);
            Coordinates ArcherCoordinates = GameController.GetObjectCoordinates(Archer);

            Assert.AreEqual(1, ArcherCoordinates.X);
            Assert.AreEqual(2, ArcherCoordinates.Y);

            Catapult    Catapult            = new Catapult(Player, 3, 4);
            Coordinates CatapultCoordinates = GameController.GetObjectCoordinates(Catapult);

            Assert.AreEqual(3, CatapultCoordinates.X);
            Assert.AreEqual(4, CatapultCoordinates.Y);

            Horseman    Horseman            = new Horseman(Player, 5, 6);
            Coordinates HorsemanCoordinates = GameController.GetObjectCoordinates(Horseman);

            Assert.AreEqual(5, HorsemanCoordinates.X);
            Assert.AreEqual(6, HorsemanCoordinates.Y);

            Swordsman   Swordsman            = new Swordsman(Player, 7, 8);
            Coordinates SwordsmanCoordinates = GameController.GetObjectCoordinates(Swordsman);

            Assert.AreEqual(7, SwordsmanCoordinates.X);
            Assert.AreEqual(8, SwordsmanCoordinates.Y);


            Grass       Grass            = new Grass(9, 10);
            Coordinates GrassCoordinates = GameController.GetObjectCoordinates(Grass);

            Assert.AreEqual(9, GrassCoordinates.X);
            Assert.AreEqual(10, GrassCoordinates.Y);

            Water       Water            = new Water(11, 12);
            Coordinates WaterCoordinates = GameController.GetObjectCoordinates(Water);

            Assert.AreEqual(11, WaterCoordinates.X);
            Assert.AreEqual(12, WaterCoordinates.Y);
        }
コード例 #12
0
        public void GetObjectCoordinates_AllTypes()
        {
            var player         = new Player(1, "Игрок №1", null);
            var map            = new Map(null, null);
            var gameController = new GameController(map);


            var archer            = new Archer(player, 1, 2);
            var archerCoordinates = gameController.GetObjectCoordinates(archer);

            Assert.AreEqual(1, archerCoordinates.X);
            Assert.AreEqual(2, archerCoordinates.Y);

            var catapult            = new Catapult(player, 3, 4);
            var catapultCoordinates = gameController.GetObjectCoordinates(catapult);

            Assert.AreEqual(3, catapultCoordinates.X);
            Assert.AreEqual(4, catapultCoordinates.Y);

            var horseman            = new Horseman(player, 5, 6);
            var horsemanCoordinates = gameController.GetObjectCoordinates(horseman);

            Assert.AreEqual(5, horsemanCoordinates.X);
            Assert.AreEqual(6, horsemanCoordinates.Y);

            var swordsman            = new Swordsman(player, 7, 8);
            var swordsmanCoordinates = gameController.GetObjectCoordinates(swordsman);

            Assert.AreEqual(7, swordsmanCoordinates.X);
            Assert.AreEqual(8, swordsmanCoordinates.Y);


            var grass            = new Grass(9, 10);
            var grassCoordinates = gameController.GetObjectCoordinates(grass);

            Assert.AreEqual(9, grassCoordinates.X);
            Assert.AreEqual(10, grassCoordinates.Y);

            var water            = new Water(11, 12);
            var waterCoordinates = gameController.GetObjectCoordinates(water);

            Assert.AreEqual(11, waterCoordinates.X);
            Assert.AreEqual(12, waterCoordinates.Y);
        }
コード例 #13
0
        public void AttackUnit_CatapultAttackCloseCombatAllTypes()
        {
            var player1  = new Player(1, "Игрок №1", null);
            var player2  = new Player(2, "Игрок №2", null);
            var catapult = new Catapult(player1)
            {
                X = 9, Y = 9
            };
            var map            = CreateMap();
            var gameController = new GameController(map);


            // Лучник имеет 50 жизней. Погибнет за один удар.
            var archerTarget = new Archer(player2)
            {
                X = 10, Y = 10
            };

            Assert.AreEqual(1, GetAttacksCount(gameController, catapult, archerTarget));

            // Катапульта имеет 75 жизней. Погибнет за два удара.
            var catapultTarget = new Catapult(player2)
            {
                X = 10, Y = 10
            };

            Assert.AreEqual(2, GetAttacksCount(gameController, catapult, catapultTarget));

            // Всадник имеет 200 жизней. Необходимо 4 удара.
            var horsemanTarget = new Horseman(player2)
            {
                X = 10, Y = 10
            };

            Assert.AreEqual(4, GetAttacksCount(gameController, catapult, horsemanTarget));

            // Мечник имеет 100 жизней. Погибнет за два удара.
            var swordsmanTarget = new Swordsman(player2)
            {
                X = 10, Y = 10
            };

            Assert.AreEqual(2, GetAttacksCount(gameController, catapult, swordsmanTarget));
        }
コード例 #14
0
        public void CanMoveUnit_SwordsmanOnWater_False()
        {
            const int waterPositionX = 15;
            const int waterPositionY = 15;

            var player    = new Player(1, "Игрок №1", null);
            var swordsman = new Swordsman(player)
            {
                X = 10, Y = 10
            };
            var water = new Water()
            {
                X = waterPositionX, Y = waterPositionY
            };
            var map            = CreateMap(new [] { water }, new [] { swordsman });
            var gameController = new GameController(map);

            Assert.False(gameController.CanMoveUnit(swordsman, waterPositionX, waterPositionY));
        }
コード例 #15
0
        public void CanMoveUnit_SwordsmanOnGrass_True()
        {
            const int grassPositionX = 15;
            const int grassPositionY = 15;

            var player    = new Player(1, "Игрок №1", null);
            var swordsman = new Swordsman(player)
            {
                X = 10, Y = 10
            };
            var grass = new Grass()
            {
                X = grassPositionX, Y = grassPositionY
            };
            var map            = CreateMap(new[] { grass }, new[] { swordsman });
            var gameController = new GameController(map);

            Assert.True(gameController.CanMoveUnit(swordsman, grassPositionX, grassPositionY));
        }
コード例 #16
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Give me equipment data file");
            //var equipmentfile = Console.ReadLine();
            var equipmentfile = "Equipment.cfg";

            ReadData.ReadFile(equipmentfile);

            Warrior w1 = new Swordsman();
            Warrior w2 = new Viking();

            w1.AddModifier(new DamageModifier(10, 3), "sword");
            w1.SetModifierTotal(new DamageModifier(0, 2));
            w2.Equip("buckler");
            Console.WriteLine(w1.HitPoints().ToString() + " x " + w2.HitPoints().ToString());
            w1.Engage(w2);
            Console.WriteLine(w1.HitPoints().ToString() + " x " + w2.HitPoints().ToString());

            Console.ReadLine();
        }
コード例 #17
0
        public void TestMethod1()
        {
            // 實現角色(client) & 角色附有招式(Command)
            Knight    knight    = new Knight();
            Swordsman swordsman = new Swordsman();

            // 實現招式插槽(Invoker)
            ISlot moveSlot = new MoveSlot();

            // 實現怪物(Receiver)
            IMonster monster = new Slime();

            // 注入招式(Command)至招式插槽(Invoker)
            moveSlot.SetMovesSlot(1, knight.MoveList[2]);
            moveSlot.SetMovesSlot(3, swordsman.MoveList[1]);

            // 透過招式插槽(Invoker)打擊怪物(Receiver)
            moveSlot.Moves[0].Cast(monster);
            moveSlot.Moves[1].Cast(monster);
        }
コード例 #18
0
        public void CreatureTakeDamage()
        {
            var health   = 100;
            var attacked = new Swordsman(true)
            {
                Health = health
            };
            var messagesCount = 0;
            var _damage       = 20;

            attacked.Damaged += (x, y, creature, damage) =>
            {
                Assert.AreEqual(_damage, damage);
                messagesCount++;
            };
            for (var i = 0; i < health / _damage; i++)
            {
                attacked.Health -= _damage;
            }
            Assert.AreEqual(health / _damage - 1, messagesCount);
        }
コード例 #19
0
ファイル: Player.cs プロジェクト: ch-andrei/ExplorationGameDP
        public NonPlayablePlayer(int supplies, int strength) : base()
        {
            this.supplies = supplies;

            while (this.computeStrength() < strength)
            {
                Follower f;

                // randomize selection of f
                f = new Swordsman();

                if (this.computeStrength() + f.getStrength() <= strength)
                {
                    this.addFollower(f);
                }
                else
                {
                    break;
                }
            }
        }
コード例 #20
0
        public void DieCreature()
        {
            var map      = new Map("P");
            var level    = new Level("test", map);
            var attacked = new Swordsman(true)
            {
                Health = 10
            };

            level.PlayerCoins = attacked.Cost;
            level.BuyCharacter(attacked);
            var messagesCount = 0;

            level.Die       += (x, y, creature) => messagesCount++;
            attacked.Health -= 10;
            var lostCreatures = level.Map.FirstOrDefault();

            Assert.IsNull(lostCreatures);
            attacked.Health = -10;
            Assert.AreEqual(1, messagesCount);
        }
コード例 #21
0
ファイル: MainWindow.cs プロジェクト: santysego91/Ika
        private void scriptMyselfFightToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string totalText = "Hoplites: " + Hoplite.ToString() + "\n";

            totalText += "Steam giants: " + SteamGiant.ToString() + "\n";
            totalText += "Spearmen: " + Spearman.ToString() + "\n";
            totalText += "Slingers: " + Slinger.ToString() + "\n";
            totalText += "Swordsmen: " + Swordsman.ToString() + "\n";
            totalText += "Archers: " + Archer.ToString() + "\n";
            totalText += "Sulphur carabineers: " + SulphurCarabineer.ToString() + "\n";
            totalText += "Rams: " + Ram.ToString() + "\n";
            totalText += "Catapults: " + Catapult.ToString() + "\n";
            totalText += "Mortars: " + Mortar.ToString() + "\n";
            totalText += "Gyrocopters: " + Gyrocopter.ToString() + "\n";
            totalText += "Balloon bombardiers: " + BalloonBombardier.ToString() + "\n";
            totalText += "Cooks: " + Cook.ToString() + "\n";
            totalText += "Doctors: " + Doctor.ToString() + "\n";
            totalText += "Transporter ships: " + TransporterShips.ToString() + "\n";
            totalText += "\nWhen finished, go to the city and press \"Raid\"";
            MessageBox.Show(totalText, "Auto fight");
        }
コード例 #22
0
ファイル: Order.cs プロジェクト: ColleaguesME/CommandCenter
        public Order(Village village, string name, int quantity = 1)
        {
            id           = GetId();
            headquarters = new Headquarters();
            timberCamp   = new TimberCamp();
            clayPit      = new ClayPit();
            ironMine     = new IronMine();
            farm         = new Farm();
            warehouse    = new Warehouse();
            rallyPoint   = new RallyPoint();
            barracks     = new Barracks();
            statue       = new Statue();
            wall         = new Wall();
            hospital     = new Hospital();
            market       = new Market();
            tavern       = new Tavern();
            academy      = new Academy();
            hallOfOrders = new HallOfOrders();

            spearman      = new Spearman();
            swordsman     = new Swordsman();
            archer        = new Archer();
            heavyCavalry  = new HeavyCavalry();
            axeFighter    = new AxeFighter();
            lightCavalry  = new LightCavalry();
            mountedArcher = new MountedArcher();
            ram           = new Ram();
            catapult      = new Catapult();


            barracksInfos      = new List <PartialBarracksInfo>();
            farmInfos          = new List <PartialFarmInfo>();
            waitInfos          = new List <PartialWaitInfo>();
            barracksToDateTime = new Dictionary <int, DateTime>();
            stringToEntity     = new Dictionary <string, Entity>()
            {
                { "Headquarters", headquarters },
                { "TimberCamp", timberCamp },
                { "ClayPit", clayPit },
                { "IronMine", ironMine },
                { "Farm", farm },
                { "Warehouse", warehouse },
                { "RallyPoint", rallyPoint },
                { "Barracks", barracks },
                { "Statue", statue },
                { "Wall", wall },
                { "Hospital", hospital },
                { "Market", market },
                { "Tavern", tavern },
                { "Academy", academy },
                { "HallOfOrders", hallOfOrders },

                { "Spearman", spearman },
                { "Swordsman", swordsman },
                { "Archer", archer },
                { "HeavyCavalry", heavyCavalry },
                { "AxeFighter", axeFighter },
                { "LightCavalry", lightCavalry },
                { "MountedArcher", mountedArcher },
                { "Ram", ram },
                { "Catapult", catapult },

                { "init", null }
            };
            barracksToLimit = new Dictionary <int, int>()
            {
                { 1, 5 },
                { 2, 10 },
                { 3, 15 }
            };
            for (int i = 4; i <= 25; i++)
            {
                barracksToLimit.Add(i, int.MaxValue);
            }
            this.name     = name;
            this.quantity = quantity;
            entity        = stringToEntity[name];
            bar           = new OrderBar(this.village = village);
        }
コード例 #23
0
 public PursueAnswer(Swordsman _swordsman)
 {
     swordsman = _swordsman;
 }
コード例 #24
0
 public PathfindAnswer(Swordsman _swordsman)
 {
     swordsman = _swordsman;
 }
コード例 #25
0
ファイル: Swordsman.cs プロジェクト: ReallyEvil/mugen
    private void Awake()
    {
        s_player = this;

        _jumps = _jumpConsecutive;

        useGUILayout = false;

        _screenPos = Camera.main.WorldToScreenPoint(transform.position);
        _rectCircle.x = _screenPos.x - _moveGestureRadius;
        _rectCircle.y = Screen.height - _screenPos.y - _moveGestureRadius;
        _rectCircle.width = 2*_moveGestureRadius;
        _rectCircle.height = 2*_moveGestureRadius;

        _circle = Resources.Load(CIRCLE_TEXT) as Texture2D;

        _arm = GameObject.Find(ARM);

        _sword = GameObject.Find(SWORD);
        _sword.active = false;

        health = 100;
        score = 0;

        _normalMaterial = _arm.renderer.material;
        _invincibleMaterial = (Material)
            GameObject.Instantiate(Resources.Load(INVINCIBLE_MAT));
    }
コード例 #26
0
 public AttackAnswer(Swordsman _swordsman)
 {
     swordsman = _swordsman;
 }
コード例 #27
0
        public override void Update(GameTime gameTime)
        {
            this.CleanDead();

            var allEntities = UsersManager.CurrentPlayer.AllEntities;

            foreach (var entity in allEntities)
            {
                entity.GravityAffect(gameTime, this.terrain);
            }

            foreach (var unit in UsersManager.CurrentPlayer.Units)
            {
                unit.Update(gameTime, this.terrain, allEntities);
            }

            this.details?.Update(gameTime);

            if (Input.KeyPressed(Keys.D1))
            {
                if (EntitySelector.HasPicked())
                {
                    EntitySelector.PlaceEntity();
                }
                else
                {
                    var unit = new Swordsman(Guid.NewGuid(), UsersManager.CurrentPlayer.Id, Vector3.Zero, Quaternion.Identity);
                    Client.Socket.Writer.Send(Message.Create(Service.AddUnit, UnitFactory.ToDto(unit)));
                    UsersManager.CurrentPlayer.Units.Add(unit);
                    UsersManager.CurrentPlayer.AllEntities.Add(unit);
                    EntitySelector.EntityPicked = unit;
                }
            }

            if (Input.LeftMouseClick())
            {
                if (EntitySelector.HasPicked())
                {
                    EntitySelector.PlaceEntity();
                }
                else
                {
                    EntitySelector.SelectEntity(
                        DisplayManager.Instance.GraphicsDevice,
                        this.camera.ProjectionMatrix,
                        this.camera.ViewMatrix,
                        allEntities);

                    if (EntitySelector.HasSelected())
                    {
                        var projectedPosition =
                            DisplayManager.Instance.GraphicsDevice.Viewport.Project(
                                EntitySelector.EntitySelected.Position,
                                this.camera.ProjectionMatrix,
                                this.camera.ViewMatrix,
                                Matrix.Identity);

                        this.details = new EntityDetailsLayout(EntitySelector.EntitySelected, PointTextures.TransparentBlackPoint, projectedPosition);
                    }
                }
            }

            if (EntitySelector.HasSelected())
            {
                if (Input.RightMouseDoubleClick)
                {
                    IEntity selected = EntitySelector.EntitySelected;
                    this.CommandSelectedEntity(selected, allEntities.Where(e => e != selected));
                }
            }

            if (this.details != null)
            {
                this.ProjectClickedEntity();
                this.ReadDetailsCommand();
            }

            EntitySelector.DragEntity(
                DisplayManager.Instance.GraphicsDevice,
                this.camera.ProjectionMatrix,
                this.camera.ViewMatrix,
                this.terrain);

            this.skybox.Update(gameTime);
            this.camera.Update(gameTime, this.terrain);
        }
コード例 #28
0
    private void SetSwordsmanTask(SpaceObject o, Swordsman unitSwordsman, Ray ray, RaycastHit hit, int unitsCount, int i)
    {
        RaycastHit checkObjectHit;

        if (Physics.Raycast(ray, out checkObjectHit))
        {
            SpaceObject so = checkObjectHit.transform.GetComponent<SpaceObject>();

            if (so != null)
            {
                if (so.Transponder == TransponderType.Enemy)
                {
                    unitSwordsman.SetTask(so.gameObject);
                }
            }
            else
            {

                unitSwordsman.SetTask(ray.GetPoint(hit.distance), unitsCount, i);
            }
        }
    }
コード例 #29
0
 public override void Init()
 {
     base.Init();
     swordsman = transform.parent.GetComponent <Swordsman>();
 }
コード例 #30
0
        public override IUnit CreateUnit()
        {
            Swordsman swordsman = new Swordsman();

            return(swordsman);
        }
コード例 #31
0
ファイル: Steve.cs プロジェクト: Claptrap725/AI-for-Games
    private void Update()
    {
        if (health > 0)
        {
            pathTimer -= Time.deltaTime;
            if (!pathfindReady && pathFollower.pathFinished)
            {
                pathfindReady = true;
            }
            if (pathTimer <= 0)
            {
                pathfindReady = true;
            }
            if (!inMaze && transform.position.x < -200)
            {
                inMaze = true;
            }

            aISteering.fleeTargets.Clear();
            swordsmen.Clear();
            Collider[] colls = Physics.OverlapSphere(transform.position, 20);
            for (int i = 0; i < colls.Length; i++)
            {
                Swordsman man = colls[i].GetComponent <Swordsman>();
                if (man != null)
                {
                    if (!seeEnemy)
                    {
                        seeEnemy      = true;
                        pathfindReady = true;
                    }
                    swordsmen.Add(man);
                }
            }

            bool temp = atHome;

            if (Vector3.Distance(transform.position, home.transform.position) < 3)
            {
                atHome = true;
            }

            if (temp != atHome)
            {
                for (int i = 0; i < spawnWhenAtHome.Count; i++)
                {
                    spawnWhenAtHome[i].SetActive(true);
                }
            }

            healthBar.transform.localScale = new Vector3(healthBar.transform.localScale.x, healthBar.transform.localScale.y, health / 5f);

            if (!atHome)
            {
                Decide();
            }
        }
        else
        {
            aISteering.agent.alive         = false;
            aISteering.rb.freezeRotation   = false;
            healthBar.transform.localScale = new Vector3(healthBar.transform.localScale.x, healthBar.transform.localScale.y, 0);
        }
    }
コード例 #32
0
        static void Main(string[] args)
        {
            /*Strategy Pattern*/
            Console.WriteLine("Output for strategy pattern: \n");
            Person swordsman = new Swordsman(new SwordBehaviour());

            Console.WriteLine("The swordsman is:");
            swordsman.Fight();
            Console.WriteLine();
            Person bowman = new Bowman(new BowBehaviour());

            Console.WriteLine("The bowman is:");
            bowman.Fight();
            Console.WriteLine();
            bowman.SetWeapon(new KnifeBehaviour());
            Console.WriteLine("The bowman is:");
            bowman.Fight();
            Console.WriteLine();
            Console.WriteLine("______________________________________________________________________________");

            /*Observer Pattern*/
            Console.WriteLine("Output for observer pattern: \n");
            Newsticker        newsticker        = new Newsticker();                         //Instance of subject
            SmartwatchDisplay smartwatchDisplay = new SmartwatchDisplay(newsticker);        //instance of observer

            newsticker.RegisterObserver(smartwatchDisplay);                                 //register observer to subject

            newsticker.SetNews("Breaking News! Hamburger Software does not sell burgers!"); //update news and notify observers
            Console.WriteLine("______________________________________________________________________________");

            /*Decorator Pattern*/
            Console.WriteLine("Output for decorator pattern: \n");
            DungieGame dungieGame = new Worstiny();

            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine();
            dungieGame = new GoodDLC(dungieGame);
            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine();
            dungieGame = new EvenBetterDLC(dungieGame);
            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine("______________________________________________________________________________");

            /*Factory Method Pattern*/
            Console.WriteLine("Output for factory method pattern: \n");
            DeviceFactory factory = new DeviceFactory();

            Factory_Method_Pattern.IDevice device = factory.MakeDevice(Factory_Method_Pattern.DeviceType.PC);
            Console.WriteLine("Factory created device:");
            Console.WriteLine(device.Name);
            Console.WriteLine();
            Console.WriteLine("______________________________________________________________________________");

            /*Abstract Factory Pattern*/
            Console.WriteLine("Output for abstract factory pattern: \n");

            AbstractStore yStore = new YStore();
            Device        pineappleSmartphone = yStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Smartphone);

            Console.WriteLine("Peter received his " + pineappleSmartphone.Name + "!");
            Console.WriteLine();

            AbstractStore jupiterStore = new JupiterStore();

            Device macroComputer = jupiterStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Computer);

            Console.WriteLine("Chris received his " + macroComputer.Name + "!");
            Console.WriteLine("______________________________________________________________________________");

            /*Singleton Pattern*/
            Console.WriteLine("Output for singleton pattern: \n");
            BasicSingleton basicSingleton = BasicSingleton.CreateInstance;

            Console.WriteLine(basicSingleton.Text);


            Console.ReadLine();
        }