void BeginAttack(ZombieAttackLocation location) { int attackers = UnityEngine.Random.Range(Settings.MinAttackers, Settings.MaxAttackers); Puts($"Sending {attackers} attackers to {location}"); for (int idx = 0; idx < attackers; idx++) { Vector3 spawnPosition = GetRandomPositionNear(location.Position, 50f); BaseCombatEntity entity = SpawnAttacker(ZOMBIE_PREFAB, spawnPosition); entity.enableSaving = false; entity.Spawn(); entity.InitializeHealth(entity.StartHealth(), entity.StartMaxHealth()); ItemDefinition item = ItemManager.FindItemDefinition(WeaponItems.GetRandom()); var npc = entity.gameObject.GetComponent <NPCPlayer>(); npc.inventory.containerBelt.Clear(); npc.inventory.containerBelt.AddItem(item, 1); npc.EquipTest(); npc.SetDestination(location.Position); Puts($"Spawned attacker at {spawnPosition} equipped with {item.name}"); } PrintToChat("<color=#ff0000>THE ATTACK HAS BEGUN!</color>"); }
public override bool Spawn(bool placing = false) { // spawn new vending machine BaseCombatEntity ent = (BaseCombatEntity)GameManager.server.CreateEntity("assets/bundled/prefabs/autospawn/resource/loot/loot-barrel-1.prefab", data.GetPosition(), data.GetRotation()); ent.Spawn(); SetMainParent(ent); return(true); }
private void SpawnNpcEntity(string prefabPath, Vector3 pos) { Vector3 point; if (FindPointOnNavmesh(pos, 50, out point)) { BaseCombatEntity entity = InstantiateEntity(prefabPath, point); entity.enableSaving = false; entity.Spawn(); entity.InitializeHealth(entity.StartHealth(), entity.StartMaxHealth()); var npc = entity.gameObject.AddComponent <HumanController>(); npc.SetInfo(prefabPath, point); animalList.Add(entity); } }
private void SpawnAnimalEntity(string type, Vector3 pos) { Vector3 point; if (FindPointOnNavmesh(pos, 50, out point)) { BaseCombatEntity entity = InstantiateEntity($"assets/rust.ai/agents/{type}/{type}.prefab", point); entity.enableSaving = false; entity.Spawn(); entity.InitializeHealth(entity.StartHealth(), entity.StartMaxHealth()); entity.lifestate = BaseCombatEntity.LifeState.Alive; var npc = entity.gameObject.AddComponent <AnimalController>(); npc.SetInfo(type, point); animalList.Add(entity); } }