/// <summary> /// /// </summary> /// <param name="monsterManager"></param> /// <param name="rootModel"></param> public MonsterHolder([NotNull] MonstersManager monsterManager, [NotNull] RootModel rootModel) { Assert.ArgumentNotNull(monsterManager, "monsterManager"); Assert.ArgumentNotNull(rootModel, "rootModel"); _monsterManager = monsterManager; _rootModel = rootModel; Uid = _rootModel.Uid; Characters = new List <MonsterStatus>(); rootModel.MessageConveyor.MessageReceived += MessageConveyor_MessageReceived; rootModel.MessageConveyor.OnDisconnected += MessageConveyor_OnDisconnected; }
public int GetCharacteristics(MonstersManager.Characteristic characteristics, int grade, int level, GeneralQuality quality) { float stat = MonstersManager.GetMonsterCharacteristics(characteristics, m_Params.Params.MobType, grade, level, m_Params.Params.m_NaturalGrade); stat *= m_Params.CharacteristicKoeff[(int)characteristics]; if (IsAwakened(quality)) { float k = BasicParams.GetGradesInfo().GeneralInfo.Awakening * 0.01f / 3; if (k > 0.001f) { stat *= (1 + k); } } return(HelpMethods.Round(stat)); }
void Start() { _instance = this; Initialize(data); }
private void Init() { m_NormalAbilities = new AttackLogic[(int)AttackLogic.AttackType.Count]; m_AwakenedAbilities = new AttackLogic[(int)AttackLogic.AttackType.Count]; m_AssetInfo = new PrefabManager.AssetPathInfo(m_Params.Params.AssetFolder, m_Params.Params.AssetName); m_AssetInfo.m_Scale = m_Params.Params.m_Scale; var attacks = m_Params.Params.Attacks; if (attacks != null) { m_AllAttacks = new List <AttackLogic>(attacks.Length); for (int i = 0; i < attacks.Length; i++) { AttackLogic al = MonstersManager.GetAttackLogc(attacks[i]); if (al == null) { Debug.LogError("Attack wasn't found " + attacks[i] + " for mob " + m_Params.Params.Name); } else { m_AllAttacks.Add(al); } } for (int i = 0; i < m_AllAttacks.Count; i++) { if (!m_AllAttacks[i].m_AwakenedAbility) { if (m_AllAttacks[i].m_AttackType == AttackLogic.AttackType.Passive) { if (m_PassiveAbilities == null) { m_PassiveAbilities = new List <AttackLogic>(); } if (m_PassiveAwakenAbilities == null) { m_PassiveAwakenAbilities = new List <AttackLogic>(); } m_PassiveAbilities.Add(m_AllAttacks[i]); m_PassiveAwakenAbilities.Add(m_AllAttacks[i]); } else { m_AwakenedAbilities[(int)m_AllAttacks[i].m_AttackType] = m_NormalAbilities[(int)m_AllAttacks[i].m_AttackType] = m_AllAttacks[i]; } } } for (int i = 0; i < m_AllAttacks.Count; i++) { if (m_AllAttacks[i].m_AwakenedAbility) { if (m_AllAttacks[i].m_AttackType == AttackLogic.AttackType.Passive) { if (m_PassiveAwakenAbilities == null) { m_PassiveAwakenAbilities = new List <AttackLogic>(); } m_PassiveAwakenAbilities.Add(m_AllAttacks[i]); } else { m_AwakenedAbilities[(int)m_AllAttacks[i].m_AttackType] = m_AllAttacks[i]; } } } } }
private void Awake() { instance = this; }