public GameService(int mapSizeX, int mapSizeY, string playerName)//char[,] initialMap) { this.playerName = playerName; Random r = RandomNumberGenerator.GlobalRandom; Generator = new MapGenerator(mapSizeX, mapSizeY); Creatures = new List<Creature>(); Player = new Creature(40) { CreatureType = "Hero", MeleeWeapon = new MeleeWeapon(){Damage=3, BrokeChance=0.001}, RangedWeapon = new RangedWeapon(){Damage=2, Range=3, Chance=0.5, Ammo=15}, GrenadeWeapon = new GrenadeWeapon{Damage=5, Range=5, Spread=2, Ammo=2} }; Player.MianownikName = "Gracz"; Player.BiernikName = "gracza"; Map = Generator.GenerateMap(Player);// new Map(initialMap); CreatureVisitor.map = Map; Creatures.AddRange(Generator.GeneratedCreatures); bool playerPlaced = false; while (playerPlaced == false) { playerPlaced = Map[r.Next(Map.MapWidth), r.Next(Map.MapHeight)].putCreature(Player); } }
public ShootCommand(Creature attacker, Creature target, Map map, IRandomNumberGenerator randomNumberGenerator) { this.randomNumberGenerator = randomNumberGenerator; this.deffender = target; this.attacker = attacker; this.map = map; }
public ThrowCommand(Creature thrower, Field targetField, Map map, IRandomNumberGenerator randomNumberGenerator) { this.thrower = thrower; this.targetField = targetField; this.map = map; this.randomNumberGenerator = randomNumberGenerator; }
public void CreatureColisionTest() { Creature opponent = new Creature(10); map[0, 1].putCreature(opponent); target.interactWithField(map[0, 1]); Assert.AreEqual(5, opponent.Health); }
public MoveCommand(Creature creature, Direction moveDirection, Map map) { this.creature = creature; this.moveDirection = moveDirection; this.map = map; this.interactIfCreature = true; }
public void MyTestInitialize() { map = TestObjects.GetTestMap(); CreatureVisitor.map = map; target = new Creature(10) { MeleeWeapon = new MeleeWeapon() { Damage = 5 }, RangedWeapon = new RangedWeapon() { Damage = 5, Range = 5, Chance = 0.5} }; map[0, 0].putCreature(target); }
public void MoveCreatureTest() { Creature playersCreature = new Creature(10) { MeleeWeapon = new MeleeWeapon() { Damage = 5 } }; map[0,0].putCreature(playersCreature); new MoveCommand(playersCreature, MoveCommand.Direction.Right, map).execute(); Assert.AreEqual(1, playersCreature.X); Assert.AreEqual(0, playersCreature.Y); }
public static bool CanShoot(Map map, Creature attacker, Creature target) { if (attacker.RangedWeapon != null && map.getDistanceBetweenFields(attacker.Field, target.Field) <= attacker.RangedWeapon.Range && map.isSightBetweenFields(attacker.Field, target.Field)) return true; return false; }
public void ConstructorTest() { try { Creature target = new Creature(-10); Assert.Fail("spodziewany był wyjątek"); } catch(CreatureException) { } }
public void MyTestInitialize() { map = TestObjects.GetTestMap(); attacker = new Creature(10) { RangedWeapon = new RangedWeapon() { Damage = 5, Range = 1, Chance = 0.5 } }; deffender = new Creature(10); map[0,0].putCreature(attacker); map[0,1].putCreature(deffender); }
public void MyTestInitialize() { map = TestObjects.GetTestMap(); attacker = new Creature(10){MeleeWeapon = new MeleeWeapon(){Damage=1}}; deffender = new Creature(10); map[0,0].putCreature(attacker); map[0,1].putCreature(deffender); }
public void PlaceMultipleCreaturesTest() { Creature thing = new Creature(10); Creature thing2 = new Creature(10); Field target = new Floor(0, 0); Assert.IsTrue(target.putCreature(thing)); Assert.IsFalse(target.putCreature(thing2)); }
public void PlaceCreatureTest() { Creature thing = new Creature(10); Field target = new Wall(0, 0); Assert.IsFalse(target.putCreature(thing)); Field target2 = new Floor(0, 0); Assert.IsTrue(target2.putCreature(thing)); Assert.AreEqual(0,target2.X); Assert.AreEqual(0, target2.Y); }
public void MeeleAttackRangeTest() { Creature enemy = new Creature(10); map[1, 2].putCreature(enemy); ICreatureCommand command = new AttackCommand(attacker, deffender, map); Assert.IsTrue(command.isExecutable()); command = new AttackCommand(attacker, enemy, map); Assert.IsFalse(command.isExecutable()); }
public void objectPickedBy(Creature creature) { int oldHealth = creature.Health; if(creature.Health + this.Health <= creature.MaxHealth) creature.Health += this.Health; else creature.Health = creature.MaxHealth; AbstractLogger.Current.Log(creature.MianownikName + " wyleczył " + (creature.Health - oldHealth) + " zdrowia."); }
public void RangedAttackRangeTest() { Creature enemy = new Creature(10); map[1, 2].putCreature(enemy); ICreatureCommand command = new ShootCommand(attacker, deffender, map, new TestRandom(0.1)); Assert.IsTrue(command.isExecutable()); command = new ShootCommand(attacker, enemy, map, new TestRandom(0.1)); Assert.IsFalse(command.isExecutable()); }
public AI(Map map, Creature player, Creature creature) { this.map = map; this.player = player; this.creature = creature; Random r = new Random(); if(r.Next(2) == 0) Sniper = true; else Sniper = false; }
public override bool putCreature(Creature thing) { if (this.Creature == null) { this.Creature = thing; this.Creature.Field = this; return true; } else { return false; } }
public static Image CreateCreatureImage(Creature creature) { if (creature.CreatureType == "Hero") { return LoadImage("player.png"); } else if (creature.CreatureType == "Enemy") { return LoadImage("enemy.png"); } else return null; }
public void CreatureNotOnTheMapTest() { // arrange Creature playersCreature = new Creature(10) { MeleeWeapon = new MeleeWeapon() { Damage = 5 } }; bool exceptionThrown = false; // act try { new MoveCommand(playersCreature, MoveCommand.Direction.Right, map).execute(); } catch (CreatureException) { exceptionThrown = true; } // assert Assert.IsTrue(exceptionThrown); }
public Creature GetRandomCreature() { Random r = RandomNumberGenerator.GlobalRandom; Creature enemy = new Creature(7 + r.Next(13)) { CreatureType = "Enemy", MianownikName = "Gangster", BiernikName = "gangstera", MeleeWeapon = new MeleeWeapon() { Damage = 1 + r.Next(2), BrokeChance = 0 }, RangedWeapon = new RangedWeapon() { Chance = (double)(10 + r.Next(80)) / 100, Damage = 1, Range = 2 + r.Next(7), Ammo = 5 + r.Next(15) } }; return enemy; }
public MoveCommand(Creature creature, int xDir, int yDir, Map map, bool interactIfCreature) { Direction moveDirection = Direction.Down; if (xDir == -1 && yDir == -1) moveDirection = Direction.LeftUp; if (xDir == -1 && yDir == 0) moveDirection = Direction.Left; if (xDir == -1 && yDir == 1) moveDirection = Direction.LeftDown; if (xDir == 0 && yDir == -1) moveDirection = Direction.Up; if (xDir == 0 && yDir == 0) moveDirection = Direction.Stop; if (xDir == 0 && yDir == 1) moveDirection = Direction.Down; if (xDir == 1 && yDir == -1) moveDirection = Direction.RightUp; if (xDir == 1 && yDir == 0) moveDirection = Direction.Right; if (xDir == 1 && yDir == 1) moveDirection = Direction.RightDown; this.creature = creature; this.moveDirection = moveDirection; this.map = map; this.interactIfCreature = interactIfCreature; }
public Creature GenerateRandomCreature(Map map, Creature player) { Random r = RandomNumberGenerator.GlobalRandom; Creature enemy = new CreatureGenerator().GetRandomCreature(); bool success = false; while(success == false) { success = map[r.Next(map.MapWidth), r.Next(map.MapHeight)].putCreature(enemy); } AI ai = new AI(map, player, enemy); enemy.AI = ai; return enemy; }
public void objectPickedBy(Creature creature) { creature.Money += Value; creature.PickedPointsCount++; AbstractLogger.Current.Log(creature.MianownikName + " zebrał " + Value + " punktów."); }
public abstract bool putCreature(Creature thing);
public CreatureVisitor(Creature creature) { this.creature = creature; }
public override void objectPickedBy(Creature creature) { creature.GrenadeWeapon = this; AbstractLogger.Current.Log(creature.MianownikName + " zebrał granat zadający " + this.Damage + " obrażeń, o obszarze o średnicy " + this.Spread + "pól i zasięgu " + this.Range); }
public abstract void objectPickedBy(Creature creature);
public override void objectPickedBy(Creature creature) { creature.RangedWeapon = this; AbstractLogger.Current.Log(creature.MianownikName + " zebrał pistolet zadający " + this.Damage + " obrażeń, o celności " + (Math.Round(this.Chance * 100)).ToString() + "%" + " i zasięgu " + this.Range); }
public Map GenerateMap(Creature player) { mapTemplate = new char[SizeX, SizeY]; // na początku wszystko jest terenem po którym można chodzić + obwódka ze ścian for (int i = 0; i < SizeX; ++i) for (int j = 0; j < SizeY; ++j) if (i == 0 || j == 0 || i == SizeX - 1 || j == SizeY - 1) mapTemplate[i, j] = '#'; else mapTemplate[i, j] = '.'; List<Building> buildings = new List<Building>(); for (int i = 0; i < maxBuildingNumber; ++i) { bool success = false; int counter = 0; while (success == false && counter < maxBuildingCounter) { Building b = Building.NewRandomBuilding(2, 2, SizeX - 2, SizeY - 2); if (!intersects(b, buildings)) { success = true; buildings.Add(b); } ++counter; } } foreach(Building b in buildings) b.DrawOnTemplate(mapTemplate); foreach (Building b in buildings) b.DrawDoors(mapTemplate); Map map = new Map(mapTemplate); foreach (Building b in buildings) b.GenerateLoot(map); int pointsCounter = 0; int tryCounter = 0; while (pointsCounter < PointObjectsCount) { ++tryCounter; if (buildings.Count == 0 || tryCounter > 10) { map[1, 1].placeObject(new Points() { Value = 10 }); ++pointsCounter; } foreach(Building b in buildings) { if (b.GeneratePoints(map) == true) ++pointsCounter; if (pointsCounter >= PointObjectsCount) break; } } foreach (Building b in buildings) { GeneratedCreatures.AddRange(b.GenerateCreatures(map, player)); } return map; }