/** 特效播放完毕 */ public void effectPlayOver(UnitEffect effect) { int id = effect.id; int num = _effectNumDic.get(id); if (num <= 0) { Ctrl.throwError("出错,effect数目小于0"); return; } _effectNumDic.put(id, --num); _effectList.removeObj(effect); effect.dispose(); GameC.pool.unitEffectPool.back(effect); //场景特效 if (_unit.type == UnitType.SceneEffect) { SceneEffectIdentityData iData = _data.getSceneEffectIdentity(); if (iData.signedEffectID > 0) { if (id == iData.signedEffectID) { sceneEffectOver(); } } else { SceneEffectConfig config = SceneEffectConfig.get(iData.id); if (config.effectID > 0) { sceneEffectOver(); } } } }
//--主显示部分--// /** 初始化主显示 */ protected virtual void initMainShow() { bool hasModel = false; if (_data.avatar != null && _data.avatar.modelID > 0) { hasModel = true; setModel(_data.avatar.modelID); _data.avatar.parts.forEach((k, v) => { setPart(k, _unit.avatar.getShowPart(k)); }); } if (BaseC.constlist.unit_canFight(_data.identity.type)) { int fightUnitID = _data.getFightIdentity().getFightUnitID(); if (fightUnitID > 0) { FightUnitConfig fConfig = FightUnitConfig.get(fightUnitID); if (!hasModel && fConfig.modelID > 0) { setModel(fConfig.modelID); } if (fConfig.effectID > 0) { addEffect(fConfig.effectID); } } } //特殊的 switch (_unit.type) { case UnitType.SceneEffect: { SceneEffectIdentityData iData = _data.getSceneEffectIdentity(); if (iData.signedEffectID > 0) { addOrPlayEffect(iData.signedEffectID); } else { SceneEffectConfig config = SceneEffectConfig.get(((SceneEffectIdentityData)_data.identity).signedEffectID); if (config.modelID > 0) { setModel(config.modelID); } if (config.effectID > 0) { addOrPlayEffect(config.effectID); } } } break; case UnitType.FieldItem: { FieldItemIdentityData iData = (FieldItemIdentityData)_data.identity; ItemConfig itemConfig = ItemConfig.get(iData.item.id); if (itemConfig.fieldItemModelID > 0) { setModel(itemConfig.fieldItemModelID); } } break; } }