public void OnBeatRight(int beatNumber) { if (MyTurn(beatNumber)) { if (party.party.attackTarget.HasValue) { GameObject target = party.spiralWorldManager.GetWorldGameObject(party.party.attackTarget.Value); if (target != null) { Attack(target); return; } } PartyMemberStatus status = party.party.GetStatus(role); if (status.resting && (status.health < status.maxHealth || status.hunger < status.maxHunger / 2)) { foreach (Loot loot in party.party.loot) { bool ate = false; switch (loot) { case Loot.HONEY: case Loot.JUICE: case Loot.SAFRON: status.health = Math.Min(status.health + 5, status.maxHealth); status.hunger = status.maxHunger; party.party.loot.Remove(loot); ate = true; break; } if (ate) { break; } } } if (status.resting && status.health >= status.maxHealth) { status.resting = false; } } frameState = (frameState + 1) % idleFrames.Length; if (!IsDead()) { if (party.party.GetStatus(role).resting) { GetComponent <SpriteRenderer>().sprite = restSprite; } else { GetComponent <SpriteRenderer>().sprite = idleFrames[frameState]; } } }
// Update is called once per frame void Update() { foreach (KeyValuePair <Notes, GameObject> indicatorPair in indicators) { Notes role = indicatorPair.Key; GameObject indicator = indicatorPair.Value; PartyMemberStatus status = party.party.GetStatus(role); float healthState = ((float)status.health) / status.maxHealth; float hungerState = ((float)status.hunger) / status.maxHunger; indicator.transform.Find("HealthIndicator").GetComponent <Image>().color = GetColor(healthState); indicator.transform.Find("FoodIndicator").GetComponent <Image>().color = GetColor(healthState > 0 ? hungerState : 0); } }
public bool AddToPartyNew(Guid newPartyMemberGuid, PartyMemberType partyMemberType, PartyMemberStatus status, PartyMemberData existingPartyMemberData, AddToPartyFlags flags) { if (newPartyMemberGuid == Guid.Empty) { Debug.LogError("Failed to add party member: Empty Guid."); return(false); } if (m_guidToPartyMemberDataDictionary.ContainsKey(newPartyMemberGuid)) { return(false); } if (!AllTimePartyMembers.Contains(newPartyMemberGuid)) { AllTimePartyMembers.Add(newPartyMemberGuid); } if (partyMemberType == PartyMemberType.Primary && IsActiveStatus(status)) { if ((flags & AddToPartyFlags.AllowRedirectToBench) != 0 && GodChallengeGameData.AnyEnabledChallenge(GodChallengeGameData.ProhibitPartyMembersPredicate)) { return(false); } if (m_activePrimaryPartyMembers.Count >= 6) { Debug.LogError("Trying to add a primary party member to the party when already at max primary party members limit!"); return(false); } } PartyMemberData partyMemberData = existingPartyMemberData; if (partyMemberData == null) { partyMemberData = new PartyMemberData(); } GameObject objectByID = InstanceID.GetObjectByID(newPartyMemberGuid); if ((bool)objectByID) { PartyMember partyMember = (!(bool)objectByID) ? null : objectByID.GetComponent <PartyMember>(); if (partyMember == null) { partyMember = ResourceManager.AddComponent <PartyMember>(objectByID); } AIController component = objectByID.GetComponent <AIController>(); if (component != null) { component.AssignPartyMemberBehavior(); } partyMember.PartyMemberData = partyMemberData; } if (!(bool)objectByID && partyMemberData.MemberStatus == PartyMemberStatus.NotInParty) { Debug.LogError("Trying to add party member with no game object reference! Guid: " + newPartyMemberGuid.ToString()); return(false); } if (!(bool)objectByID && status == PartyMemberStatus.Active) { status = PartyMemberStatus.InactiveAvailable; } partyMemberData.InitializePartyMemberData(newPartyMemberGuid, partyMemberType); m_guidToPartyMemberDataDictionary.Add(newPartyMemberGuid, partyMemberData); if (existingPartyMemberData != null) { RestorePartyMemberStatus(newPartyMemberGuid, status); } else { SetPartyMemberStatus(newPartyMemberGuid, status, flags); } return(true); }
public void SetPartyUI(PartyMemberStatus _partyMemberStatus) { statusUI = _partyMemberStatus; statusUI.SetPlayerStat (this.gameObject); statusUI.UpdateStatHealth(); statusUI.UpdateStatActionPoints(); }
public void SetPartyUI(PartyMemberStatus _partyMemberStatus) { statusUI = _partyMemberStatus; statusUI.SetPlayerStat (this.gameObject); }