/// private メソッド ///--------------------------------------------------------------------------- /// フレーム:移動 private bool frameMove(ActorChHobit actorCh) { actorCh.AiMoveCount--; if (actorCh.AiMoveCount < 0) { actorCh.MovedFlag = true; if (actorCh.texId < (int)Data.Tex2dResId.NormalCharMax) { int ToNumber = ctrlResMgr.CtrlTo.GetEntryNum() + ctrlResMgr.CtrlWall.GetEntryNum(); if (ToNumber == 0) { actorCh.AiMoveRot = (int)StaticDataList.getRandom(0, 360); } else { int towerNumber = (int)StaticDataList.getRandom(0, ToNumber); glowTowerWall(actorCh, towerNumber); moveToTowerWall(actorCh, towerNumber); } } if (actorCh.texId == (int)Data.Tex2dResId.Zonbi1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, ctrlResMgr.EnemyMoPos) + StaticDataList.getRandom(-10, 10); } actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime), (int)Data.SetupValue.CharMoveChangeRandTime)); actorSpeek(actorCh); } moveCh(actorCh); return(true); }
private void actorSpeek(ActorChHobit actorCh) { actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime), (int)Data.SetupValue.CharMoveChangeRandTime)); if (actorCh.texId != (int)Data.Tex2dResId.Zonbi1 && actorCh.texId != (int)Data.Tex2dResId.Necromancer1) { if (StaticDataList.getRandom(0, 100) < (int)Data.SetupValue.BaloonAppearRand && actorCh.deadFlagSp == true && speakCount < 6) { actorCh.setAppearCountSp((int)Data.SetupValue.AppearAndLeaveTime); speakCount++; int charVoNumber = StaticDataList.getRandom(3); switch (charVoNumber) { case 0: AppSound.GetInstance().PlaySeCamDis(AppSound.SeId.CharVo1, actorCh.GetBodyPos()); break; case 1: AppSound.GetInstance().PlaySeCamDis(AppSound.SeId.CharVo2, actorCh.GetBodyPos()); break; case 2: AppSound.GetInstance().PlaySeCamDis(AppSound.SeId.CharVo3, actorCh.GetBodyPos()); break; } } } else if (actorCh.texId == (int)Data.Tex2dResId.Zonbi1) { if (StaticDataList.getRandom(0, 100) < (int)Data.SetupValue.GionAppearRand && actorCh.deadFlagSp == true && speakCount < 6) { actorCh.setAppearCountSp((int)Data.SetupValue.GionAppearSpeed); speakCount++; AppSound.GetInstance().PlaySeCamDis(AppSound.SeId.ZonbiVo3, actorCh.GetBodyPos()); } } }
private void battleEffect(ActorChHobit actorCh) { if (StaticDataList.getRandom(0, (int)Data.SetupValue.BattleEffectRand + 1) == 0) { AppSound.GetInstance().PlaySeCamDis(AppSound.SeId.PlDamage, actorCh.GetBodyPos()); //ctrlResMgr.CtrlPl.Addeffect(new Vector3( actorCh.BasePos.X + StaticDataList.getRandom(-15,15)/5.0f ,actorCh.BasePos.Y + 0.2f ,actorCh.BasePos.Z+ StaticDataList.getRandom(-15,15)/5.0f)); ctrlResMgr.AddEffectFromEnemy = true; ctrlResMgr.AddEnemyEffectPos = actorCh.BasePos; } }
/// 敵の登録 public void EntryAddEnemy(int TexId, Vector3 pos) { ActorChHobit actorCh = new ActorChHobit(TexId); actorCh.Init(); actorCh.Start(); actorChList.Add(actorCh); SetPlace((actorChList.Count - 1), pos); }
private void moveCh(ActorChHobit actorCh) { if (actorCh.FrameFlag == true) { actorCh.SetStateMove(new Vector3(actorCh.BaseMtx.M31, actorCh.BaseMtx.M32, actorCh.BaseMtx.M33), moveSpeed, actorCh.AiMoveRot, false); } else { actorCh.SetStateMove(new Vector3(actorCh.BaseMtx.M31, actorCh.BaseMtx.M32, actorCh.BaseMtx.M33), 0, actorCh.AiMoveRot, false); } }
private void randomMoveToTowerWall(ActorChHobit actorCh) { int ToNumber = ctrlResMgr.CtrlTo.GetEntryNum() + ctrlResMgr.CtrlWall.GetEntryNum(); if (ToNumber == 0) { actorCh.AiMoveRot = (int)StaticDataList.getRandom(0, 360); } else { int towerNumber = (int)StaticDataList.getRandom(0, ToNumber); moveToTowerWall(actorCh, towerNumber); } }
private void moveToTowerWall(ActorChHobit actorCh, int towerNumber) { float tempRot; if (towerNumber < ctrlResMgr.CtrlTo.GetEntryNum()) { tempRot = Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, ctrlResMgr.CtrlTo.GetPos(towerNumber)); } else { tempRot = Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, ctrlResMgr.CtrlWall.GetPos(towerNumber - ctrlResMgr.CtrlTo.GetEntryNum())); } actorCh.AiMoveRot += tempRot + StaticDataList.getRandom(-3, 3); }
private bool frameMurder(ActorChHobit actorCh) { actorCh.AiMoveCount--; if (actorCh.AiMoveCount < 0) { actorCh.MovedFlag = true; if (actorCh.texId == (int)Data.Tex2dResId.Noumin1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, meanChPos(true, true, false, true)) + StaticDataList.getRandom(-20, 20); if (StaticDataList.random100() < (int)Data.SetupValue.BattleNouminDeadRand) { actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } } if (actorCh.texId == (int)Data.Tex2dResId.Senshi1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, meanChPos(true, true, false, true)) + StaticDataList.getRandom(-20, 20); if (StaticDataList.random100() < (int)Data.SetupValue.BattleSenshiDeadRand) { actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } } if (actorCh.texId == (int)Data.Tex2dResId.Souryo1) { randomMoveToTowerWall(actorCh); if (StaticDataList.random100() < (int)Data.SetupValue.BattleSouryoDeadRand * 2 * rateCh(false, false, false, true)) { actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } } if (actorCh.texId == (int)Data.Tex2dResId.Zonbi1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, meanChPos(true, true, false, true)) + StaticDataList.getRandom(-20, 20); if (StaticDataList.random100() < (int)Data.SetupValue.BattleZonbi2DeadRand * 2 * rateCh(false, false, true, false)) { actorCh.setdeadFlag(true); } } battleEffect(actorCh); actorSpeek(actorCh); } moveCh(actorCh); return(true); }
private bool frameEat(ActorChHobit actorCh) { GameCtrlManager ctrlResMgr = GameCtrlManager.GetInstance(); if (actorCh.GetStateId() != ActorChBase.StateId.Eat) { actorCh.AiMoveCount--; if (actorCh.AiMoveCount < 0) { actorCh.AiMoveRot = (int)StaticDataList.getRandom(360); actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime), (int)Data.SetupValue.CharMoveChangeRandTime)); } actorCh.SetStateMove(new Vector3(actorCh.BaseMtx.M31, actorCh.BaseMtx.M32, actorCh.BaseMtx.M33), moveSpeed, actorCh.AiMoveRot, false); } return(true); }
/// フレーム:移動 private bool frameBattleMove(ActorChHobit actorCh) { actorCh.AiMoveCount--; if (actorCh.AiMoveCount < 0) { actorCh.MovedFlag = true; if (actorCh.texId == (int)Data.Tex2dResId.Noumin1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, EnemyCenterPos) + StaticDataList.getRandom(-20, 20); } if (actorCh.texId == (int)Data.Tex2dResId.Senshi1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, EnemyCenterPos) + StaticDataList.getRandom(-20, 20); } if (actorCh.texId == (int)Data.Tex2dResId.Souryo1) { randomMoveToTowerWall(actorCh); } if (actorCh.texId == (int)Data.Tex2dResId.Zonbi1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, meanChPos(true, true, false, false) + StaticDataList.getRandom(-20, 20)); } if (actorCh.texId == (int)Data.Tex2dResId.Necromancer1) { actorCh.AiMoveRot += Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos, EnemyPos / ZonbiList.Count) + StaticDataList.getRandom(-20, 20); ctrlResMgr.AddEnemyFromNecro = true; ctrlResMgr.AddEnemyPos = actorCh.BasePos; ctrlResMgr.AddEffectFromEnemy = true; ctrlResMgr.AddEnemyEffectPos = actorCh.BasePos; } actorSpeek(actorCh); } moveCh(actorCh); return(true); }
private void glowTowerWall(ActorChHobit actorCh, int towerNumber) { float dis; if (towerNumber < ctrlResMgr.CtrlTo.GetEntryNum()) { dis = Common.VectorUtil.DistanceXZ(actorCh.BasePos, ctrlResMgr.CtrlTo.GetPos(towerNumber)); if (dis < (int)Data.SetupValue.TowerGlowArea / 10.0f && ctrlResMgr.CtrlTo.GetUseActorBaseObj(towerNumber).GetTexId() != 0) { ctrlResMgr.CtrlTo.GetUseActorBaseObj(towerNumber).glowCounter++; // actorCh.setdeadFlag(true); } } else { dis = Common.VectorUtil.DistanceXZ(actorCh.BasePos, ctrlResMgr.CtrlWall.GetPos(towerNumber - ctrlResMgr.CtrlTo.GetEntryNum())); if (dis < (int)Data.SetupValue.TowerGlowArea / 10.0f && ctrlResMgr.CtrlWall.GetUseActorBaseObj(towerNumber - ctrlResMgr.CtrlTo.GetEntryNum()).GetTexId() != 0) { ctrlResMgr.CtrlWall.GetUseActorBaseObj(towerNumber - ctrlResMgr.CtrlTo.GetEntryNum()).glowCounter++; // actorCh.setdeadFlag(true); } } }
private bool frameBreakTower(ActorChHobit actorCh) { return true; }
private void battleEffect(ActorChHobit actorCh) { if(StaticDataList.getRandom(0,(int)Data.SetupValue.BattleEffectRand+1) == 0){ AppSound.GetInstance().PlaySeCamDis( AppSound.SeId.PlDamage,actorCh.GetBodyPos() ); //ctrlResMgr.CtrlPl.Addeffect(new Vector3( actorCh.BasePos.X + StaticDataList.getRandom(-15,15)/5.0f ,actorCh.BasePos.Y + 0.2f ,actorCh.BasePos.Z+ StaticDataList.getRandom(-15,15)/5.0f)); ctrlResMgr.AddEffectFromEnemy = true; ctrlResMgr.AddEnemyEffectPos = actorCh.BasePos; } }
private bool frameMurderMove(ActorChHobit actorCh) { actorCh.AiMoveCount--; if(actorCh.AiMoveCount < 0){ if(actorCh.texId == (int)Data.Tex2dResId.Noumin1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,EnemyCenterPos) + StaticDataList.getRandom(-20,20); } if(actorCh.texId == (int)Data.Tex2dResId.Senshi1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,EnemyCenterPos) + StaticDataList.getRandom(-20,20); } if(actorCh.texId == (int)Data.Tex2dResId.Souryo1){ randomMoveToTowerWall(actorCh); } if(actorCh.texId == (int)Data.Tex2dResId.Zonbi1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,PriestCenterPos+ StaticDataList.getRandom(-20,20)); } if(actorCh.texId == (int)Data.Tex2dResId.Necromancer1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,EnemyPos/ZonbiList.Count) + StaticDataList.getRandom(-20,20); ctrlResMgr.AddEnemyFromNecro = true; ctrlResMgr.AddEnemyPos = actorCh.BasePos; ctrlResMgr.AddEffectFromEnemy = true; ctrlResMgr.AddEnemyEffectPos = actorCh.BasePos; } actorSpeek(actorCh); } moveCh(actorCh); return true; }
private bool frameMurder(ActorChHobit actorCh) { actorCh.AiMoveCount--; if(actorCh.AiMoveCount < 0){ actorCh.MovedFlag = true; if(actorCh.texId == (int)Data.Tex2dResId.Noumin1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,meanChPos(true,true,false,true)) + StaticDataList.getRandom(-20,20); if(StaticDataList.random100() < (int)Data.SetupValue.BattleNouminDeadRand) actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } if(actorCh.texId == (int)Data.Tex2dResId.Senshi1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,meanChPos(true,true,false,true)) + StaticDataList.getRandom(-20,20); if(StaticDataList.random100() < (int)Data.SetupValue.BattleSenshiDeadRand) actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } if(actorCh.texId == (int)Data.Tex2dResId.Souryo1){ randomMoveToTowerWall(actorCh); if(StaticDataList.random100() < (int)Data.SetupValue.BattleSouryoDeadRand*2*rateCh(false,false,false,true)) actorCh.changeId((int)Data.Tex2dResId.Zonbi1); } if(actorCh.texId == (int)Data.Tex2dResId.Zonbi1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,meanChPos(true,true,false,true)) + StaticDataList.getRandom(-20,20); if(StaticDataList.random100() < (int)Data.SetupValue.BattleZonbi2DeadRand*2*rateCh(false,false,true,false)) actorCh.setdeadFlag(true); } battleEffect(actorCh); actorSpeek(actorCh); } moveCh(actorCh); return true; }
private bool frameBreakTower(ActorChHobit actorCh) { return(true); }
private void glowTowerWall(ActorChHobit actorCh, int towerNumber) { float dis; if(towerNumber < ctrlResMgr.CtrlTo.GetEntryNum()){ dis = Common.VectorUtil.DistanceXZ(actorCh.BasePos,ctrlResMgr.CtrlTo.GetPos(towerNumber)); if(dis < (int)Data.SetupValue.TowerGlowArea/10.0f && ctrlResMgr.CtrlTo.GetUseActorBaseObj(towerNumber).GetTexId() != 0){ ctrlResMgr.CtrlTo.GetUseActorBaseObj(towerNumber).glowCounter++; // actorCh.setdeadFlag(true); } }else{ dis = Common.VectorUtil.DistanceXZ(actorCh.BasePos,ctrlResMgr.CtrlWall.GetPos(towerNumber-ctrlResMgr.CtrlTo.GetEntryNum())); if(dis < (int)Data.SetupValue.TowerGlowArea/10.0f && ctrlResMgr.CtrlWall.GetUseActorBaseObj(towerNumber-ctrlResMgr.CtrlTo.GetEntryNum()).GetTexId() != 0){ ctrlResMgr.CtrlWall.GetUseActorBaseObj(towerNumber-ctrlResMgr.CtrlTo.GetEntryNum()).glowCounter++; // actorCh.setdeadFlag(true); } } }
/// private メソッド ///--------------------------------------------------------------------------- /// フレーム:移動 private bool frameMove( ActorChHobit actorCh) { actorCh.AiMoveCount--; if(actorCh.AiMoveCount < 0 ){ actorCh.MovedFlag = true; if(actorCh.texId < (int)Data.Tex2dResId.NormalCharMax){ int ToNumber = ctrlResMgr.CtrlTo.GetEntryNum() + ctrlResMgr.CtrlWall.GetEntryNum(); if(ToNumber == 0){ actorCh.AiMoveRot = (int)StaticDataList.getRandom(0,360); }else{ int towerNumber = (int)StaticDataList.getRandom(0,ToNumber); glowTowerWall(actorCh,towerNumber); moveToTowerWall(actorCh,towerNumber); } } if(actorCh.texId == (int)Data.Tex2dResId.Zonbi1){ actorCh.AiMoveRot += Common.VectorUtil.GetRotY( actorCh.AiMoveRot,actorCh.BasePos,ctrlResMgr.EnemyMoPos) + StaticDataList.getRandom(-10,10); } actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime),(int)Data.SetupValue.CharMoveChangeRandTime)); actorSpeek(actorCh); } moveCh(actorCh); return true; }
private void moveCh(ActorChHobit actorCh) { if(actorCh.FrameFlag == true){ actorCh.SetStateMove( new Vector3( actorCh.BaseMtx.M31,actorCh.BaseMtx.M32,actorCh.BaseMtx.M33 ), moveSpeed, actorCh.AiMoveRot, false ); }else{ actorCh.SetStateMove( new Vector3( actorCh.BaseMtx.M31,actorCh.BaseMtx.M32,actorCh.BaseMtx.M33 ), 0, actorCh.AiMoveRot, false ); } }
private void actorSpeek(ActorChHobit actorCh) { actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime),(int)Data.SetupValue.CharMoveChangeRandTime)); if(actorCh.texId != (int)Data.Tex2dResId.Zonbi1 && actorCh.texId != (int)Data.Tex2dResId.Necromancer1){ if(StaticDataList.getRandom(0,100) < (int)Data.SetupValue.BaloonAppearRand && actorCh.deadFlagSp == true && speakCount < 6){ actorCh.setAppearCountSp((int)Data.SetupValue.AppearAndLeaveTime); speakCount++; int charVoNumber = StaticDataList.getRandom(3); switch(charVoNumber){ case 0: AppSound.GetInstance().PlaySeCamDis( AppSound.SeId.CharVo1,actorCh.GetBodyPos() ); break; case 1: AppSound.GetInstance().PlaySeCamDis( AppSound.SeId.CharVo2,actorCh.GetBodyPos() ); break; case 2: AppSound.GetInstance().PlaySeCamDis( AppSound.SeId.CharVo3,actorCh.GetBodyPos() ); break; } } }else if(actorCh.texId == (int)Data.Tex2dResId.Zonbi1){ if(StaticDataList.getRandom(0,100) < (int)Data.SetupValue.GionAppearRand && actorCh.deadFlagSp == true && speakCount < 6 ){ actorCh.setAppearCountSp((int)Data.SetupValue.GionAppearSpeed); speakCount++; AppSound.GetInstance().PlaySeCamDis( AppSound.SeId.ZonbiVo3,actorCh.GetBodyPos() ); } } }
private void randomMoveToTowerWall(ActorChHobit actorCh) { int ToNumber = ctrlResMgr.CtrlTo.GetEntryNum() + ctrlResMgr.CtrlWall.GetEntryNum(); if(ToNumber == 0){ actorCh.AiMoveRot = (int)StaticDataList.getRandom(0,360); }else{ int towerNumber = (int)StaticDataList.getRandom(0,ToNumber); moveToTowerWall(actorCh,towerNumber); } }
private void moveToTowerWall(ActorChHobit actorCh , int towerNumber) { float tempRot; if(towerNumber < ctrlResMgr.CtrlTo.GetEntryNum()){ tempRot = Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos ,ctrlResMgr.CtrlTo.GetPos(towerNumber)); }else{ tempRot = Common.VectorUtil.GetRotY(actorCh.AiMoveRot, actorCh.BasePos ,ctrlResMgr.CtrlWall.GetPos(towerNumber-ctrlResMgr.CtrlTo.GetEntryNum())); } actorCh.AiMoveRot += tempRot+StaticDataList.getRandom(-3,3); }
/// 敵の登録 public void EntryAddEnemy( int TexId, Vector3 pos) { ActorChHobit actorCh = new ActorChHobit(TexId); actorCh.Init(); actorCh.Start(); actorChList.Add( actorCh ); SetPlace( (actorChList.Count-1), pos ); }
private bool frameEat(ActorChHobit actorCh) { GameCtrlManager ctrlResMgr = GameCtrlManager.GetInstance(); if(actorCh.GetStateId() != ActorChBase.StateId.Eat){ actorCh.AiMoveCount--; if(actorCh.AiMoveCount < 0){ actorCh.AiMoveRot = (int)StaticDataList.getRandom(360); actorCh.AiMoveCount = (int)(Data.SetupValue.CharMoveChangeTime + StaticDataList.getRandom(-(int)(Data.SetupValue.CharMoveChangeRandTime),(int)Data.SetupValue.CharMoveChangeRandTime)); } actorCh.SetStateMove( new Vector3( actorCh.BaseMtx.M31,actorCh.BaseMtx.M32,actorCh.BaseMtx.M33 ), moveSpeed, actorCh.AiMoveRot, false ); } return true; }