/* パーティーを表示 */ public static void DrawParty(Party party) { // インスタンス化 GameObject canvas = GameObject.Find("PartyCanvas"); if (canvas == null) { canvas = Utility._Object.GenerateCanvas(5); canvas.name = "PartyCanvas"; } string FilePath = "Prefabs\\Party\\Party"; partyObj = Utility._Object.MyInstantiate(FilePath, canvas); mPartyScript = partyObj.GetComponent <mPartyObject>(); mPartyScript.FindObjectAddress(); mPartyScript.SetPartyName(party.partyName); // キャラクタの情報をセットしていく for (int i = 0; i < party.partyCharacter.Length; i++) { PartyCharacter pChara = party.partyCharacter[i]; if (pChara.characterId == -1) { mPartyScript.SetStandImage(i, "Images/Stand/c999"); mPartyScript.FrameSetActive(i, false); continue; } mPartyScript.SetHpText(i, pChara.cs.maxHp); mPartyScript.SetStandImage(i, pChara.cs.standGraphicPath); mPartyScript.SetElement(i, pChara.cs.element); mPartyScript.FrameSetActive(i, true); } }
public TurnAction DoTurn(PartyCharacter target) { if (this.CurrentHP > 0) { // Utilise la compétence ayant la plus grosse valeur d'attaque avec un coût en point d'action inférieur aux points d'action restant et ayant un cooldown restant de 0 Ability ability = this.Abilities.Where(i => (i.currentCooldown == 0) && (i.ActionPoint <= this.ActionPoints)).OrderByDescending(i => Math.Abs(i.Value)).FirstOrDefault(); if (ability != null) { TurnAction action = new TurnAction { Action = ability.DoAbility, ActionName = $"L'adversaire utilise la compétence {ability.Name}", Source = this, Target = target }; return(action); } // Si aucune compétence n'est utilisable else { UI.Display($"{this.Name} passe son tour !"); return(null); } } else { return(null); } }
public void AddPassiveEffects(PartyCharacter pchar) { foreach (A_Passive passive in this.passives) { passive.AddPassiveEffect(pchar); } }
private PartyCharacter CreateNewPartyCharacter(int inventoryNum) { PartyCharacter c = new PartyCharacter(inventoryNum); // Create the ability and assign to the character. GameEnum.AbilityName abilityName = GameManager.instance.Data.GetInventoryCharacterAbilityName(inventoryNum); c.SetAbility(GameManager.instance.Data.CloneAbility(abilityName, airship)); return(c); }
public void Refresh() { list.QueueFreeChildren(); buttons.Clear(); foreach (CharacterEntity member in Family.familyMembers.Where(e => e.ageGroup >= Date.AgeGroup.TEEN)) { PartyCharacter character = PartyCharacter.CreateParty(member); list.AddChild(character); character.Connect("pressed", this, nameof(on_ToggleMember), Global.ArrayFrom(member)); buttons[member] = character; } }
public void SetPartyCharacter(PartyCharacter character) { this.character = character; // Update the displays foreach (DisplayProperties dp in this.displayProperties) { dp.iconImage.sprite = character.Icon; dp.nameText.text = character.Name; dp.hpImage.fillAmount = m_maxFill; dp.mpImage.fillAmount = m_maxFill; dp.roleName.text = string.Format("Lv. {0} {1}", GameHelper.ConvertExpToLevel(character.Exp).ToString(), character.Role.ToString()); if (this.displayType == GameEnum.DisplayType.CIRCLE) { dp.cdImage.fillAmount = 0.0f; } else { dp.cdImage.fillAmount = m_maxFill; } dp.hpText.text = string.Format("{0} / {1}", character.CurHp.ToString(), character.MaxHp.ToString()); dp.mpText.text = string.Format("{0} / {1}", character.CurMp.ToString(), character.MaxMp.ToString()); } // Set tooltip info. if (character.Ability != null) { GameEnum.AbilityName abilityName = character.Ability.AbilityName; this.tooltipProperties.tooltipAbilityName.text = GameManager.instance.Data.GetAbilityStringName(abilityName); this.tooltipProperties.tooltipAbilityDesc.text = GameManager.instance.Data.GetAbilityDesc(abilityName); this.tooltipProperties.tooltipAbilityMana.text = GameManager.instance.Data.GetAbilityStringManaCost(abilityName).ToString(); this.tooltipProperties.tooltipAbilityCooldown.text = GameManager.instance.Data.GetAbilityStringCooldown(abilityName).ToString(); this.tooltipProperties.tooltipParent.SetActive(false); if (this.character.CurMp < this.character.MaxMp) { this.RechargeMana(); } } else { this.tooltipProperties.tooltipAbilityName.text = ""; this.tooltipProperties.tooltipAbilityDesc.text = ""; this.tooltipProperties.tooltipAbilityMana.text = ""; this.tooltipProperties.tooltipAbilityCooldown.text = ""; this.tooltipProperties.tooltipParent.SetActive(false); } }
public void ActivateAbility(int charNum) { if (charNum < this.charactersInAirship.Length) { PartyCharacter c = this.charactersInAirship [charNum]; if (c.CanUseAbility()) { // Set the activated character number. this.activatedCharNum = charNum; // Activate the character's ability to be used. this.charactersInAirship[charNum].ActivateAbility(); } } }
public void SetPlayerParty(PartyCharacterData[] newCharacters, int[] charIndexes) { playerParty = new PartyCharacter[4]; for (int i = 0; i < 4; i++) { playerParty[i] = new PartyCharacter(); if (i < newCharacters.Length) { playerParty[i].animations = newCharacters[i].animations; playerParty[i].hoverAnim = newCharacters[i].hoverAnim; playerParty[i].hoverDist = newCharacters[i].hoverDist; playerParty[i].hoverTime = newCharacters[i].hoverTime; playerParty[i].charName = newCharacters[i].charName; playerParty[i].maxHP = newCharacters[i].maxHP; playerParty[i].maxMP = newCharacters[i].maxMP; playerParty[i].attack = newCharacters[i].attack; playerParty[i].subAttack = newCharacters[i].subAttack; playerParty[i].defense = newCharacters[i].defense; playerParty[i].mentalDef = newCharacters[i].mentalDef; playerParty[i].turnSpeed = newCharacters[i].turnSpeed; playerParty[i].statusEffects = new List <Character.StatusEffect>(); playerParty[i].weaknessesAndResistances = newCharacters[i].weaknessesAndResistances; playerParty[i].damageTypeUnlocks = newCharacters[i].damageTypeUnlocks; playerParty[i].skills = newCharacters[i].skills; playerParty[i].possibleCharacterIndex = charIndexes[i]; playerParty[i].charExp = possiblePartyMemberExp[playerParty[i].possibleCharacterIndex]; playerParty[i].charType = newCharacters[i].charType; playerParty[i].charSubtype = newCharacters[i].charSubtype; playerParty[i].movementSpeed = newCharacters[i].movementSpeed; playerParty[i].focusSpeed = newCharacters[i].focusSpeed; playerParty[i].portrait = newCharacters[i].portrait; playerParty[i].charLevel = 1; playerParty[i].shmupData = newCharacters[i].shmupData; playerParty[i].shotTypeEquip = newCharacters[i].defaultShot; } else { playerParty[i].charName = "na"; } } FullHealParty(); }
// Use this for initialization void Start() { GameManager.instance.InGameController = this; // Get the airship prefab from scriptable. GameObject gobj = GameManager.instance.Data.GetCurrentAirshipPrefab(GameManager.instance.Data.GetCurrentAirshipName()); if (gobj != null) { this.airship = (GameObject.Instantiate(gobj, this.playerStartPoint.position, Quaternion.identity) as GameObject).GetComponent <Airship_Player>(); } if (this.airship == null) { Debug.Log("airship not found"); } else { this.cm.SetTarget(this.airship.transform); } // Disable move target gobj. this.moveTargetGobj.SetActive(false); // Initialize boundaries. this.bounds = new Bounds(Vector3.zero, new Vector3(95f, 0, 95f)); // Get characters that are currently in airship. this.charactersInAirship = new PartyCharacter[GameManager.instance.Data.GetCharactersInAirship().Length]; for (int i = 0; i < this.charactersInAirship.Length; i++) { int inventoryNum = GameManager.instance.Data.GetCharactersInAirship()[i]; // Create character. PartyCharacter c = this.CreateNewPartyCharacter(inventoryNum); // Assign character and ability to visual component. this.pmc.SetPartyCharacter(c, i); this.charactersInAirship[i] = c; this.igm.SetCharOnDeck(i, c.Icon); } // Get characters on standby in the airship. this.charactersStandbyInAirship = new PartyCharacter[GameManager.instance.Data.GetCharactersStandbyInAirship().Length]; for (int i = 0; i < this.charactersStandbyInAirship.Length; i++) { int inventoryNum = GameManager.instance.Data.GetCharactersStandbyInAirship()[i]; // Create character. PartyCharacter c = this.CreateNewPartyCharacter(inventoryNum); // Store in standby array. this.charactersStandbyInAirship[i] = c; this.igm.SetCharOnStandby(i, c.Icon); } this.mc.SetMission(GameManager.instance.Data.GetCurrentMission()); this.mc.CloseMenu(); this.igm.gameObject.SetActive(false); }
/// <summary> /// Pickup a character crew from the ground. /// </summary> /// <param name="character">Character.</param> /*public void PickupCrew (GameEnum.CharacterName character){ * GameManager.instance.Data.AddNewCharacterToInventory (character); * GameManager.instance.Data.Save (); * }*/ // In game menu options. public void SwapCharacters(int slotNum0, bool onStandby0, int slotNum1, bool onStandby1) { PartyCharacter temp; if (onStandby0) { if (onStandby1) { int inventory0 = GameManager.instance.Data.GetCharactersStandbyInAirship() [slotNum0]; int inventory1 = GameManager.instance.Data.GetCharactersStandbyInAirship() [slotNum1]; GameManager.instance.Data.SetCharacterStandbyInAirship(inventory1, slotNum0); GameManager.instance.Data.SetCharacterStandbyInAirship(inventory0, slotNum1); } else { int inventory0 = GameManager.instance.Data.GetCharactersStandbyInAirship() [slotNum0]; int inventory1 = GameManager.instance.Data.GetCharactersInAirship() [slotNum1]; GameManager.instance.Data.SetCharacterStandbyInAirship(inventory1, slotNum0); GameManager.instance.Data.SetCharacterInAirship(inventory0, slotNum1); // Create character. PartyCharacter c1 = this.CreateNewPartyCharacter(inventory0); this.pmc.SetPartyCharacter(c1, slotNum1); this.charactersInAirship[slotNum1] = c1; } } else { if (onStandby1) { int inventory0 = GameManager.instance.Data.GetCharactersInAirship() [slotNum0]; int inventory1 = GameManager.instance.Data.GetCharactersStandbyInAirship() [slotNum1]; GameManager.instance.Data.SetCharacterInAirship(inventory1, slotNum0); GameManager.instance.Data.SetCharacterStandbyInAirship(inventory0, slotNum1); // Create character. PartyCharacter c0 = this.CreateNewPartyCharacter(inventory1); this.pmc.SetPartyCharacter(c0, slotNum0); this.charactersInAirship[slotNum0] = c0; } else { int inventory0 = GameManager.instance.Data.GetCharactersInAirship() [slotNum0]; int inventory1 = GameManager.instance.Data.GetCharactersInAirship() [slotNum1]; GameManager.instance.Data.SetCharacterInAirship(inventory1, slotNum0); GameManager.instance.Data.SetCharacterInAirship(inventory0, slotNum1); // Create character. PartyCharacter c0 = this.CreateNewPartyCharacter(inventory1); this.pmc.SetPartyCharacter(c0, slotNum0); this.charactersInAirship[slotNum0] = c0; PartyCharacter c1 = this.CreateNewPartyCharacter(inventory0); this.pmc.SetPartyCharacter(c1, slotNum1); this.charactersInAirship[slotNum1] = c1; } } // Create the ability and assign to the character. /*GameEnum.AbilityName abilityName = GameManager.instance.Data.GetInventoryCharacterAbilityName(inventoryNum); * c.SetAbility(GameManager.instance.Data.CloneAbility(abilityName, airship)); * * // Assign character and ability to visual component. * this.pmc.SetPartyCharacter(char0, abilityName, i);*/ }
public void SetPartyCharacter(PartyCharacter character, int partyIndex) { this.partyCharacters [partyIndex].SetPartyCharacter(character); }
public abstract void AddPassiveEffect(PartyCharacter pchar);
public override void AddPassiveEffect(PartyCharacter pchar) { pchar.Bonus.damagePercentBonus += 15; }