public void ComposeCreature(CreatureFaction faction, int creatureId, int definitionId, FDPosition position, int dropItem = 0) { CreatureDefinition creatureDef = DefinitionStore.Instance.GetCreatureDefinition(definitionId); FDCreature creature = new FDCreature(creatureId, faction, creatureDef, position); switch (faction) { case CreatureFaction.Friend: this.Friends.Add(creature); break; case CreatureFaction.Enemy: if (dropItem > 0) { creature.Data.DropItem = dropItem; } this.Enemies.Add(creature); break; case CreatureFaction.Npc: this.Npcs.Add(creature); break; default: break; } CreatureComposePack pack = new CreatureComposePack(creatureId, creatureDef.AnimationId, position); gameCallback.OnHandlePack(pack); }
private void AddPeasantHabitats() { Random random = new Random(08); CreatureDefinition creatureDefinition = new CreatureDefinition("Peasant"); for (int i = 0; i < 50; i++) { Point position = new Point(random.Next(512), random.Next(512)); MapObjectFactory.AddHabitat(position, creatureDefinition); } }
public static void AddHabitat(Point position, CreatureDefinition creatureDefinition, int production = 7, JEventBus eventBus = null) { string structureName = creatureDefinition.Name + "Habitat"; StructureDefinition structureDefinition = new StructureDefinition(structureName, new Point(1, 1)); Structure structure = new Structure(structureDefinition); AddStructureOnWorldMapEvent addStructureOnWorldMapEvent = new AddStructureOnWorldMapEvent(structure, position); addStructureOnWorldMapEvent.Params.Add("template", "Habitat"); addStructureOnWorldMapEvent.Params.Add("production", production); addStructureOnWorldMapEvent.Params.Add("definition", creatureDefinition); BaseApi.SendEvent(eventBus, addStructureOnWorldMapEvent); }
public static void AddArmy(string name, Point startPosition, bool addAi = true, JEventBus eventBus = null) { CreatureDefinition creatureDefinition = new CreatureDefinition("Peasant"); Creature creature = new Creature(creatureDefinition, 10); Army army = new Army(); army.Fraction = new Fraction(name); army.Fraction.Resources.Add("Gold", new Resource(new ResourceDefinition("Gold"), 500)); army.Creatures.Add(creature); AddArmyEvent addArmyEvent = new AddArmyEvent(army, startPosition, addAi); BaseApi.SendEvent(eventBus, addArmyEvent); }
public static CreatureData FromDefinition(int creatureId, CreatureDefinition definition) { CreatureData data = new CreatureData(); data.CreatureId = creatureId; data.DefinitionId = definition.DefinitionId; data.Level = definition.InitialLevel; data.Hp = data.HpMax = definition.InitialHp; data.Mp = data.MpMax = definition.InitialMp; data.Ap = definition.InitialAp; data.Dp = definition.InitialDp; data.Dx = definition.InitialDx; data.Mv = definition.InitialMv; data.Exp = definition.InitialEx; data.Items = definition.Items; data.Magics = definition.Magics; // Get Equiped items data.AttackItemIndex = -1; data.DefendItemIndex = -1; for (int i = 0; i < data.Items.Count; i++) { int itemId = data.Items[i]; ItemDefinition item = DefinitionStore.Instance.GetItemDefinition(itemId); if (item != null && item is AttackItemDefinition) { data.AttackItemIndex = i; } if (item != null && item is DefendItemDefinition) { data.DefendItemIndex = i; } } data.Effects = new List <CreatureEffects>(); return(data); }
public FDCreature(int creatureId, CreatureFaction faction, CreatureDefinition definition, FDPosition position) { this.Faction = faction; this.Data = new CreatureData(); this.Data = CreatureData.FromDefinition(creatureId, definition); this.Definition = definition; this.Position = position; this.PreMovePosition = position; this.Data.LastGainedExperience = 0; if (this.Definition.Occupation == 154 || this.Definition.Occupation == 155 || this.Definition.DefinitionId == 747) { this.Data.AIType = CreatureData.AITypes.AIType_Defensive; } else { this.Data.AIType = CreatureData.AITypes.AIType_Aggressive; } }
public Creature(CreatureDefinition definition, int count = 1) { Definition = definition; Count = count; }
public override void Initialize() { CreatureDefinition = null; Production = 0; }
public Habitat(CreatureDefinition creatureDefinition, int production) { CreatureDefinition = creatureDefinition; Production = production; }