public void Initialize(FieldMapTable.FieldGimmickPointTableData pointData) { base.Initialize(); param = MonoBehaviourSingleton <InGameSettingsManager> .I.waveMatchParam; base.objectType = OBJECT_TYPE.WAVE_TARGET; id = (int)pointData.pointID; m_gimmickType = pointData.gimmickType; if (MonoBehaviourSingleton <InGameProgress> .IsValid() && MonoBehaviourSingleton <InGameProgress> .I.fieldGimmickModelTable != null) { LoadObject loadObject = MonoBehaviourSingleton <InGameProgress> .I.fieldGimmickModelTable.Get((uint)m_gimmickType); if (loadObject != null) { m_modelTrans = ResourceUtility.Realizes(loadObject.loadedObject, base._transform, -1); } } _maxHp = (_nowHp = (int)pointData.value1); base.coopMode = (MonoBehaviourSingleton <CoopManager> .I.coopMyClient.isStageHost ? COOP_MODE_TYPE.ORIGINAL : COOP_MODE_TYPE.MIRROR); ParseParam(pointData.value2); if (MonoBehaviourSingleton <UIStatusGizmoManager> .IsValid()) { MonoBehaviourSingleton <UIStatusGizmoManager> .I.CreateWaveTarget(this); } if (MonoBehaviourSingleton <MiniMap> .IsValid()) { MonoBehaviourSingleton <MiniMap> .I.Attach(this); } }
public void AddUseGaugeByIndex(int index, float add_gauge, bool set_only = false, bool isForceSet = false, bool isNotBuff = false) { if ((!set_only || (index >= weaponOffset && index < weaponOffset + 3)) && skillParams[index].isValid && !IsArenaForbidSlotType(skillParams[index].tableData.type)) { if (!isForceSet && !skillParams[index].tableData.lockBuffTypes.IsNullOrEmpty()) { int[] lockBuffTypes = skillParams[index].tableData.lockBuffTypes; for (int i = 0; i < lockBuffTypes.Length; i++) { if (player.IsValidBuff((BuffParam.BUFFTYPE)lockBuffTypes[i])) { return; } } } if (!player.IsValidShield() || !player.buffParam.IsValidShieldBuff(skillParams[index].skillIndex) || isForceSet) { if (player.IsValidShield()) { int shieldFromSkillIndex = player.buffParam.GetShieldFromSkillIndex(); if (shieldFromSkillIndex < 0 || (IsSkillApplyShield(skillParams[index].tableData) && IsExistShieldInLockBuffTypes(skillParams[shieldFromSkillIndex].tableData.lockBuffTypes) && !isForceSet)) { return; } } float useGaugeCounter = skillParams[index].useGaugeCounter; float num = add_gauge; if (isNotBuff) { num *= player.buffParam.GetSkillAbsorbUp((skillParams[index].tableData.type != SKILL_SLOT_TYPE.ATTACK) ? ELEMENT_TYPE.MAX : skillParams[index].tableData.skillAtkType); if (QuestManager.IsValidInGameWaveMatch() && MonoBehaviourSingleton <InGameSettingsManager> .IsValid()) { InGameSettingsManager.WaveMatchParam waveMatchParam = MonoBehaviourSingleton <InGameSettingsManager> .I.waveMatchParam; switch (waveMatchParam.skillGaugeType) { case InGameSettingsManager.WaveMatchParam.eGaugeType.Zero: return; case InGameSettingsManager.WaveMatchParam.eGaugeType.Rate: num *= waveMatchParam.skillGaugeValue; break; case InGameSettingsManager.WaveMatchParam.eGaugeType.Constant: num = waveMatchParam.skillGaugeValue; break; } } } if (num == 3.40282347E+38f) { useGaugeCounter = (float)(int)skillParams[index].useGauge; } else if (num == -3.40282347E+38f) { useGaugeCounter = 0f; } else { useGaugeCounter += num; if (useGaugeCounter < 0f) { useGaugeCounter = 0f; } if (useGaugeCounter > (float)(int)skillParams[index].useGauge) { useGaugeCounter = (float)(int)skillParams[index].useGauge; } } skillParams[index].useGaugeCounter = useGaugeCounter; } } }