static void CreateEntityJson() { EntityDefines entityDefines = new EntityDefines() { Attributes = new Attributes() { Strength = 1, MaxHP = 10, Speed = 2, Dexterity = 1, Intellect = 1 }, EntityLayers = new List <EntityLayer>() { new EntityLayer() { DrawLayer = 1, Layername = "male_skeleton", Color = Color.white }, }, SpawnLocation = new Vector3Int(0, 0, 0), OnDeath = new OnDeath() { ChangeTiles = new List <TileData>() { new TileData() { Layer = "Background", Postion = new Vector3Int(1, 1, 0), TileName = "Assorted Terrain 1_256_352" }, new TileData() { Layer = "Background", Postion = new Vector3Int(1, 2, 0), TileName = "Assorted Terrain 1_256_352" }, new TileData() { Layer = "Background", Postion = new Vector3Int(1, 3, 0), TileName = "Assorted Terrain 1_256_352" }, new TileData() { Layer = "Background", Postion = new Vector3Int(1, 4, 0), TileName = "Assorted Terrain 1_256_352" }, new TileData() { Layer = "Background", Postion = new Vector3Int(1, 5, 0), TileName = "Assorted Terrain 1_256_352" }, new TileData() { Layer = "Background", Postion = new Vector3Int(1, 6, 0), TileName = "Assorted Terrain 1_256_352" }, }, ChangePlayerAttributes = new Attributes() } }; FileLoader.SaveAsJson($"{FileLoader.ModPath}/Maps/entity.json", entityDefines); }
static EntityDefines GetClosestEntity(Vector3Int location, Map map) { float distance = float.MaxValue; EntityDefines entityDefines = null; foreach (var entity in map.Entities) { var dist = Vector3Int.Distance(location, entity.SpawnLocation); if (dist < distance) { distance = dist; entityDefines = entity; } } return(entityDefines); }
static EntityDefines CreateEntity() { var entity = new EntityDefines(); var chance = Random.value; if (chance < 0.5f) { entity.Attributes = new Attributes() { Dexterity = 1, Intellect = 1, MaxHP = 5, Speed = 2, Strength = 1 }; entity.EntityLayers = new List <EntityLayer>() { new EntityLayer() { DrawLayer = 1, Layername = "male_skeleton", Color = Color.white } }; entity.OnDeath = new OnDeath() { ChangePlayerAttributes = new Attributes() { Strength = 0, Speed = 0, MaxHP = 0, Intellect = 0, Dexterity = 0 }, ChangeTiles = new List <TileData>() }; return(entity); } if (chance < 0.7f) { entity.Attributes = new Attributes() { Dexterity = 1, Intellect = 1, MaxHP = 10, Speed = 1, Strength = 2 }; entity.EntityLayers = new List <EntityLayer>() { new EntityLayer() { DrawLayer = 1, Layername = "male_orc", Color = Color.white }, new EntityLayer() { DrawLayer = 2, Layername = "male_pants", Color = Color.white } }; entity.OnDeath = new OnDeath() { ChangeTiles = new List <TileData>(), ChangePlayerAttributes = new Attributes() { Strength = 1, Speed = 0, MaxHP = 0, Intellect = 0, Dexterity = 0 } }; return(entity); } else if (chance < 0.95f) { entity.Attributes = new Attributes() { Dexterity = 1, Intellect = 1, MaxHP = 20, Speed = 3, Strength = 2 }; entity.EntityLayers = new List <EntityLayer>() { new EntityLayer() { DrawLayer = 1, Layername = "female_darkelf", Color = Color.white }, new EntityLayer() { DrawLayer = 2, Layername = "female_mohawk", Color = Color.white }, new EntityLayer() { DrawLayer = 3, Layername = "female_pants", Color = Color.white }, new EntityLayer() { DrawLayer = 4, Layername = "female_corset", Color = Color.white } }; entity.OnDeath = new OnDeath() { ChangeTiles = new List <TileData>(), ChangePlayerAttributes = new Attributes() { Strength = 0, Speed = 0, MaxHP = 5, Intellect = 0, Dexterity = 0 } }; return(entity); } else { entity.Attributes = new Attributes() { Dexterity = 1, Intellect = 1, MaxHP = 50, Speed = 3, Strength = 5 }; entity.EntityLayers = new List <EntityLayer>() { new EntityLayer() { DrawLayer = 1, Layername = "female_orc", Color = Color.white }, new EntityLayer() { DrawLayer = 2, Layername = "female_mohawk", Color = Color.magenta }, new EntityLayer() { DrawLayer = 3, Layername = "female_pants", Color = Color.white }, new EntityLayer() { DrawLayer = 4, Layername = "female_chainmail", Color = Color.white } }; entity.OnDeath = new OnDeath() { ChangeTiles = new List <TileData>(), ChangePlayerAttributes = new Attributes() { Strength = 1, Speed = 0, MaxHP = 5, Intellect = 0, Dexterity = 0 } }; return(entity); } }