public void InfluenceMachine(FStateMachine sm) { for (int i = 0; i < sm.mFCharacterDataList.Count; i++) { FCharacterData other = sm.mFCharacterDataList[i]; FCharacterData fd = GetCharacterData(other.GetKey()); if (fd != null) { fd.AddFCharacter(other); } } }
public void ComputeData(float timeDp) { for (int j = mDataList.Count - 1; j >= 0; j--) { FCharacterData fd = mDataList[j]; LogicCharacter(timeDp, fd); if ((fd.mTimeDp -= timeDp) < 0) { mDataList.Remove(fd); EndCharacter(fd); } } }
protected override void BeginCharacter(FCharacterData fcd) { BloodData sd = (BloodData)fcd; int bl = sd.attack - defend; if (blood <= 0) { //Debug.LogError("多次计算碰撞错误"); return; } blood -= (bl > 0 ? bl : 0); if (mBloodEvent != null && curBlood != blood) { curBlood = blood; mBloodEvent(blood); } }
public override void EndCharacter(FCharacterData fcd) { SentEvent(); }
protected virtual void LogicCharacter(float timeDp, FCharacterData fcd) { }
protected virtual void BeginCharacter(FCharacterData fcd) { }
public void AddFCharacter(FCharacterData fcd) { mDataList.Add(fcd.GetCloneInistane()); BeginCharacter(fcd); }
public virtual void EndCharacter(FCharacterData fcd) { }
public void RegisterData(FCharacterData fd) { mFCharacterDataList.Add(fd); }
protected override void BeginCharacter(FCharacterData fcd) { SentEvent(); }