Example #1
0
    GameObject CreateGameObject(AICharacterData data, Faction faction)
    {
        var prefab  = CombatReferences.Get().combatCharacterPrefab;
        var enemyGO = GameObject.Instantiate(prefab) as GameObject;

        enemyGO.name = data.displayName;
        var sr = enemyGO.GetComponent <SpriteRenderer>();

        sr.sprite = data.visuals;
        if (faction == Faction.Enemy)
        {
            sr.flipX = true;
        }
        return(enemyGO);
    }
Example #2
0
    public Character CreateCharacter(AICharacterData data, Faction f)
    {
        var aiCharacter = DesertContext.StrangeNew <Character>();

        aiCharacter.Setup(data.hp);
        aiCharacter.attackModule  = CreateAttackModule(data);
        aiCharacter.defenseModule = CreateDefenseModule(data);
        aiCharacter.displayName   = data.displayName;
        aiCharacter.myFaction     = f;
        aiCharacter.speed         = data.initiative;
        factionManager.Register(aiCharacter);
        if (data.specialEffectData != null)
        {
            data.specialEffectData.Apply(aiCharacter);
        }

        return(aiCharacter);
    }
Example #3
0
    public void AddAlly(AICharacterData allyData, bool getsWounded)
    {
        var teammate = new TeammateData();

        teammate.data      = allyData;
        teammate.character = aiFactory.CreateCharacter(allyData, Faction.Player);

        if (getsWounded)
        {
            teammate.character.health.KilledEvent += () => AllyWounded(teammate);
        }
        else
        {
            teammate.character.health.KilledEvent += () => RemoveAlly(teammate);
        }

        allies.Add(teammate);

        TeamUpdatedEvent();
    }
Example #4
0
    public CombatController CreateCombatController(AICharacterData data, Faction faction)
    {
        var aiCharacter = CreateCharacter(data, faction);

        return(CreateCombatController(aiCharacter, data, faction));
    }
Example #5
0
 void HookCharacterIntoController(CombatController aiController, Character character, AICharacterData data)
 {
     aiController.KilledEvent += () => factionManager.Unregister(character);
     aiController.character    = character;
     aiController.combatActor  = data.combatAI.Create(aiController);
 }