public Monster GetTargetMonster(Director.Team actingTeam, Director.Team targetTeam)
    {
        switch (actingTeam)
        {
        case Director.Team.PlayerTeam:
            if (targetTeam == actingTeam)
            {
                return(sr.director.PlayerLunenAlive[PlayerSelfTarget]);
            }
            else
            {
                return(sr.director.EnemyLunenAlive[PlayerOtherTarget]);
            }

        case Director.Team.EnemyTeam:
            if (targetTeam == actingTeam)
            {
                return(sr.director.EnemyLunenAlive[EnemySelfTarget]);
            }
            else
            {
                return(sr.director.PlayerLunenAlive[EnemyOtherTarget]);
            }
        }
        return(null);
    }
 public void ScanParty(Director.Team team)
 {
     if (team == Director.Team.PlayerTeam)
     {
         ScanPlayer1Party();
     }
     else if (team == Director.Team.EnemyTeam)
     {
         ScanPlayer2Party();
     }
 }
Example #3
0
    public void Execute()
    {
        sr = MonsterUser.sr;
        sr.soundManager.PlaySoundEffect("ConfirmSelection");
        Director.Team actionTeam = MonsterUser.MonsterTeam;
        Director.Team targetTeam = Director.Team.PlayerTeam;
        if (actionTeam == Director.Team.PlayerTeam)
        {
            targetTeam = Director.Team.EnemyTeam;
        }
        sr.eventLog.AddEvent("Attack: " + MonsterUser.Nickname + " attacks with " + Name + " targetting one enemy");
        if (customEvent != null)
        {
            customEvent.Invoke();
        }
        foreach (ActionPart part in PartsOfAction)
        {
            switch (part.Target)
            {
            case MonsterAim.SingleOpponent:
                ExecutePerMonster(part, sr.canvasCollection.GetTargetMonster(actionTeam, targetTeam));
                break;

            case MonsterAim.AllOpponents:
                for (int i = 0; i < sr.director.GetLunenCountOut(targetTeam); i++)
                {
                    ExecutePerMonster(part, sr.director.GetMonsterOut(targetTeam, i));
                }
                break;

            case MonsterAim.AllAllies:
                for (int i = 0; i < sr.director.GetLunenCountOut(actionTeam); i++)
                {
                    ExecutePerMonster(part, sr.director.GetMonsterOut(actionTeam, i));
                }
                break;

            case MonsterAim.SingleAlly:
                ExecutePerMonster(part, sr.canvasCollection.GetTargetMonster(actionTeam, actionTeam));
                break;

            case MonsterAim.Self:
                ExecutePerMonster(part, MonsterUser);
                break;
            }
        }
        sr.database.SetTriggerValue("BattleVars/AnimationTime", TimePausePeriod);
        sr.database.SetTriggerValue("BattleVars/AttackLunenName", MonsterUser.Nickname);
        sr.database.SetTriggerValue("BattleVars/AttackLunenAction", name);
        sr.battleSetup.StartCutscene(sr.database.GetPackedCutscene("LunenAttack"));
        MonsterUser.EndTurn();
    }