protected void launchMissile() { // 发射导弹 bool success = false; if (mAimTarget != null) { MissileParam param = new MissileParam(); param.mPosition = mPlayer.getPosition() + new Vector3(0.0f, 2.5f, 0.0f); param.mTarget = mAimTarget; SceneMissile missile = mItemManager.createItem <SceneMissile>(SCENE_ITEM.SI_MISSILE, param); if (mPlayer.isType(CHARACTER_TYPE.CT_MYSELF)) { GameTools.PLAY_AUDIO_OBJECT(missile, SOUND_DEFINE.SD_FIRE_MISSILE); } // 通知锁定玩家 CommandCharacterNotifyMissileLocked cmdLock = newCmd(out cmdLock); cmdLock.mLocked = true; cmdLock.mMissile = missile; pushCommand(cmdLock, mAimTarget); success = true; } // 移除瞄准状态 CommandCharacterRemoveState cmdState = newCmd(out cmdState); cmdState.mState = mType; pushCommand(cmdState, mPlayer); // 发射成功后移除角色背包中的导弹道具 if (success) { CommandCharacterRemoveItem cmdRemove = newCmd(out cmdRemove); cmdRemove.mItem = mPlayer.getPlayerPack().getCurItem(); pushCommand(cmdRemove, mPlayer); } }
public void notifyMissileLocked(SceneMissile missile, bool locked) { if (locked) { if (!mMissileLockList.Contains(missile)) { mMissileLockList.Add(missile); } } else { mMissileLockList.Remove(missile); } }
public override void init() { base.init(); mMissile = null; mLocked = false; }
public void setItem(SceneMissile item) { mMissileObject = item; mEffective = true; }