public Actor(ActorType type, int level) : this() { ActorType = type; Level = 1; AddLevelTraits(); for (int l = 0; l < level; l++) LevelUpRandom(); Health = MaxHealth; }
public static ActorType GenerateMobType() { ActorType type = new ActorType(); type.AccuracyTrend = new TraitTrend<int>((l) => 2 * l + 1); type.AttackTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 2) + 10)); type.DefenceTrend = new TraitTrend<int>((l) => (int)(0.9 * Math.Pow(l, 2) + 5)); type.HealthTrend = new TraitTrend<int>((l) => (int)(0.7 * Math.Pow(l, 2) + 30)); type.ExperienceTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 3))); type.SpeedTrend = new TraitTrend<int>((l) => l); return type; }
public Hero(ActorType type, int level) : base(type, level) { }
public void Setup() { GameTime = new DateTime(1, 1, 1, 7, 0, 0); Actors = new List<Actor>(); GameSetup = new GameSetup(); GameSetup.SetupBiomes(); GameSetup.SetupMobTypes(); Map = GameSetup.GenerateWorldMap(); Tile tile = Map.GetTile(5, 5); ActorType heroType = new ActorType(); heroType.AccuracyTrend = new TraitTrend<int>((l) => 2 * l + 1); heroType.AttackTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 2) + 10)); heroType.DefenceTrend = new TraitTrend<int>((l) => (int)(0.9 * Math.Pow(l, 2) + 5)); heroType.HealthTrend = new TraitTrend<int>((l) => (int)(0.7 * Math.Pow(l, 2) + 30)); heroType.ExperienceTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 3))); heroType.SpeedTrend = new TraitTrend<int>((l) => 10); Hero hero = new Hero(heroType, 5); hero.Name = "Hero"; Hero = hero; AddActor(hero, tile); //MobType type = MobTypeFactory.GenerateMobType(); for (int i = 0; i < 20; i++) { Mob mob = MobFactory.GenerateMob(GameSetup.MobTypes["Goblin"], 3); mob.Name = "Goblin " + i; while (true) { Tile mobTile = Map.GetTile(Random.Next(0, Map.MapWidth - 1), Random.Next(0, Map.MapWidth - 1)); if (mobTile.Feature == null && mobTile.Actor == null) { AddActor(mob, mobTile); break; } } } }
public static Mob GenerateMob(ActorType type, int level) { Mob mob = new Mob(type, level); mob.Name = GetRandomName(); return mob; }
public Mob(ActorType type, int level) : base(type, level) { }
public void SetupMobTypes() { ActorType goblinType = new ActorType(); goblinType.AccuracyTrend = new TraitTrend<int>((l) => 2 * l + 1); goblinType.AttackTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 2) + 10)); goblinType.DefenceTrend = new TraitTrend<int>((l) => (int)(0.9 * Math.Pow(l, 2) + 5)); goblinType.HealthTrend = new TraitTrend<int>((l) => (int)(0.7 * Math.Pow(l, 2) + 30)); goblinType.ExperienceTrend = new TraitTrend<int>((l) => (int)(Math.Pow(l, 3))); goblinType.SpeedTrend = new TraitTrend<int>((l) => 10); MobTypes.Add("Goblin", goblinType); }