void LayoutWallObject(ref List <Vector2Int> emptyCells) { var cell = VExt.NextFromList(emptyCells); var go = VExt.LayoutAnimationObject( ObjData.r_PrefabPhysicsAnimation, cell.x, cell.y, "wall", ObjData.t_GameObjectsRoot, SortingLayer.Object.ToString(), VExt.NextFromArray(ObjData.p_WallsPresets.Animation)); var e = _world.NewEntityWith(out GameObjectComponent goComponent, out WallComponent _); goComponent.Transform = go.transform; goComponent.GO = go.GetComponent <PrefabComponentsShortcut>(); goComponent.GO.NPCNameText.text = e.GetInternalId().ToString(); var dataComponent = e.Set <NPCDataSheetComponent>(); dataComponent.Stats.MaxHealthPoint = UnityEngine.Random.Range(minWallHP, maxWallHP + 1); dataComponent.Stats.HealthPoint = dataComponent.Stats.MaxHealthPoint; emptyCells.Remove(cell); }
void LayoutEnemyObject(ref List <Vector2Int> emptyCells, EnemyPreset enemyPreset) { var cell = VExt.NextFromList(emptyCells); _world.RLCreateEnemy(cell, enemyPreset); emptyCells.Remove(cell); }
void NewFruitHeal(ref List <Vector2Int> emptyCells) { var pos = VExt.NextFromList(emptyCells); _presets.CollectingItems.TryGetValue("FruitHeal", out CollectingItemPreset preset); _world.RLNewLevelObject(preset, pos); emptyCells.Remove(pos); }