Example #1
0
    void BuildBasics()
    {
        playerCharacter = DesertContext.StrangeNew <Character>();

        var baseStats = BasePlayerCharacterStats.Instance;

        SetArt(baseStats.baseArt);
        playerCharacter.Setup(baseStats.maxHP);
        playerCharacter.attackModule  = CreateAttackModule(baseStats);
        playerCharacter.defenseModule = CreateDefenseModule(baseStats);
        playerCharacter.speed         = baseStats.baseInitiative;
        playerCharacter.myFaction     = Faction.Player;
        playerCharacter.displayName   = "PLAYA";

        combatPlayerAbilities.Clear();
        combatPlayerAbilities.Add(CombatReferences.Get().emptyAbility);
        combatPlayerAbilityModifiers.Clear();
        ambushPlayerAbilities.Clear();
        ambushPlayerAbilities.Add(CombatReferences.Get().emptyAbility);
        baseStats.defaultAbilities.ForEach(a => AddCombatPlayerAbility(a));
        baseStats.defaultAbilityModifiers.ForEach(m => AddCombatPlayerAbilityModifier(m));
        baseStats.defaultAmbushAbilities.ForEach(a => AddAmbushAbility(a));

        baseStats.autoEquippedItems.ForEach(i => {
            var item = i.Create(playerCharacter);
            inventory.AddItem(item);
            item.Equip(playerCharacter);
        });
    }
Example #2
0
    GameObject CreateGameObject()
    {
        var prefab = CombatReferences.Get().combatCharacterPrefab;
        var go     = GameObject.Instantiate(prefab) as GameObject;

        go.name = "Player";
        go.GetComponent <SpriteRenderer>().sprite = playerCharacter.GetArt();
        return(go);
    }
Example #3
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 #4
0
    public void HighlightTargets(List <Character> targets)
    {
        if (isHighlighting)
        {
            RemoveAllHighlights();
        }

        var prefab = CombatReferences.Get().highlightPrefab;

        targets.ForEach(c =>
        {
            var referenceTransform = c.ownerGO.transform;
            var highlight          = GameObject.Instantiate(prefab, referenceTransform.position, Quaternion.identity) as GameObject;
            activeHighlights.Add(highlight);
        });

        isHighlighting = true;
    }
Example #5
0
    public Combat CreateCombat(List <AICharacterData> characters, AIAbilityData ambushAbility, CombatInitiator combatInitiator, System.Action finishedCallback)
    {
        var go = GameObject.Instantiate(CombatReferences.Get().combatViewPrefab) as GameObject;
        //THIS IS SO HACKY! We should find a better way to pass this in here.
        var parent = GameObject.Find("ApplicationRoot").transform;

        go.transform.SetParent(parent);
        var combatView = go.GetComponent <CombatView>();

        var enemies = CreateCombatants(characters);

        combatView.PlaceCharacters(enemies, Faction.Enemy);

        var allies        = playerTeam.GetCombatAlliesControllers();
        var playerFactory = DesertContext.StrangeNew <PlayerCombatCharacterFactory>();
        var player        = playerFactory.CreatePlayerCombatCharacter();

        allies.Add(player);
        combatView.PlaceCharacters(allies, Faction.Player);

        combatView.SetupVisuals(mapViewData, mapCreator);

        var combat = DesertContext.StrangeNew <Combat>();

        combat.Setup(enemies, allies, () => { GameObject.Destroy(go); finishedCallback(); });

        combat.SetupEnemyAmbush(ambushAbility, () => combat.SetupPlayerAmbush(combat.RunCombat));

        /*
         * if (combatInitiator == CombatInitiator.Enemy && ambushAbility != null)
         *  combat.SetupEnemyAmbush(CreateAmbushAbility(enemies[0], ambushAbility));
         * else if (combatInitiator == CombatInitiator.Player)
         *  combat.SetupPlayerAmbush();
         * else
         *  combat.RunCombat();
         */

        return(combat);
    }