Exemplo n.º 1
0
        public static void SpawnHostileUnit(Vector3 position, BlueprintUnit unit)
        {
            var currentMode = Game.Instance.CurrentMode;

            if (currentMode == GameModeType.Default || currentMode == GameModeType.Pause)
            {
                var player   = Game.Instance.Player;
                var target   = player.Party.Random <UnitEntityData>();
                var executor = Game.Instance.EntityCreator.SpawnUnit(unit, position,
                                                                     Quaternion.LookRotation(target.OrientationDirection), Game.Instance.CurrentScene.MainState);
                if (!executor.AttackFactions.Contains(Game.Instance.BlueprintRoot.PlayerFaction))
                {
                    executor.AttackFactions.Add(Game.Instance.BlueprintRoot.PlayerFaction);
                }
                executor.Commands.Run(UnitAttack.CreateAttackCommand(executor, target));
            }
        }
Exemplo n.º 2
0
        public static void SpawnHostileUnit(Vector3 position, string guid)
        {
            GameModeType currentMode = Game.Instance.CurrentMode;

            if (currentMode == GameModeType.Default || currentMode == GameModeType.Pause)
            {
                BlueprintUnit blueprintUnit = Utilities.GetBlueprintByGuid <BlueprintUnit>(guid);
                if (blueprintUnit != null)
                {
                    Player         player   = Game.Instance.Player;
                    UnitEntityData target   = player.Party.Random <UnitEntityData>();
                    UnitEntityData executor = Game.Instance.EntityCreator.SpawnUnit((BlueprintUnit)Utilities.GetBlueprintByGuid <BlueprintUnit>(guid), position, Quaternion.LookRotation(target.OrientationDirection), Game.Instance.CurrentScene.MainState);
                    if (!executor.AttackFactions.Contains(Game.Instance.BlueprintRoot.PlayerFaction))
                    {
                        executor.AttackFactions.Add(Game.Instance.BlueprintRoot.PlayerFaction);
                    }
                    executor.Commands.Run(UnitAttack.CreateAttackCommand(executor, target));
                }
            }
        }