| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public class MarkMgr
- {
- Fighter mFighter;
- List<Mark> mMarkList;
- public List<Mark> MarkList
- {
- get { return mMarkList; }
- }
- public MarkMgr(Fighter f)
- {
- mFighter = f;
- mMarkList = new List<Mark>();
- }
- public SFloat GetFunValue(Buff_Function_Type funType)
- {
- if (mMarkList == null) return 0;
- SFloat totalVal = 0;
- for(int idx =0; idx < mMarkList.Count;idx++)
- {
- totalVal += mMarkList[idx].GetFunValue(funType);
- }
- return totalVal;
- }
- public SFloat GetFunPercent(Buff_Function_Type funType)
- {
- if (mMarkList == null) return 0;
- SFloat totalVal = 0;
- for (int idx = 0; idx < mMarkList.Count; idx++)
- {
- totalVal += mMarkList[idx].GetFunPercent(funType);
- }
- return totalVal;
- }
- public Mark AddMark(int markId,int layer)
- {
- Mark mark = GetMark(markId);
- if(mark == null)
- {
- mark = new Mark(markId);
- mMarkList.Add(mark);
- }
- mark.AddLayer(mFighter, layer);
- return mark;
- }
- public void ClearMark(int markId, int layer)
- {
- Mark mark = GetMark(markId);
- if(mark != null)
- {
- mark.DecLayer(layer);
- }
- }
- public Mark GetMark(int markId)
- {
- for(int idx =0; idx < mMarkList.Count;idx++)
- {
- if(mMarkList[idx].Id == markId)
- {
- return mMarkList[idx];
- }
- }
- return null;
- }
- public bool HasMark(int markId)
- {
- Mark mark = GetMark(markId);
- return mark != null && !mark.Stopped;
- }
- public bool HasNLayerMark(int markId,int layer)
- {
- Mark mark = GetMark(markId);
- return mark != null && !mark.Stopped && mark.Layer >= layer;
- }
- public void Update(float deltaTime)
- {
- for(int idx = mMarkList.Count - 1; idx >= 0; idx--)
- {
- mMarkList[idx].Update(deltaTime);
- }
- for(int idx = mMarkList.Count - 1; idx >= 0; idx--)
- {
- if(mMarkList[idx].Stopped)
- {
- mMarkList.RemoveAt(idx);
- }
- }
- }
- public void Clear()
- {
- for (int idx = mMarkList.Count - 1; idx >= 0; idx--)
- mMarkList[idx].Stop();
- mMarkList.Clear();
- }
- public void Dispose()
- {
- Clear();
- mFighter = null;
- }
- public void OnFightingEnd()
- {
- Clear();
- }
- }
|