コード例 #1
0
 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];
         }
     }
 }
コード例 #2
0
 // 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);
     }
 }
コード例 #3
0
ファイル: PartyManager.cs プロジェクト: Tyr62/POE-II-Deadfire
        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);
        }
コード例 #4
0
	public void SetPartyUI(PartyMemberStatus _partyMemberStatus)
	{
		statusUI = _partyMemberStatus; 
		statusUI.SetPlayerStat (this.gameObject);

		statusUI.UpdateStatHealth();
		statusUI.UpdateStatActionPoints();
	}
コード例 #5
0
 public void SetPartyUI(PartyMemberStatus _partyMemberStatus)
 {
     statusUI = _partyMemberStatus;
     statusUI.SetPlayerStat (this.gameObject);
 }