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); }); }
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); }
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); }
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; }
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); }