void SetMainBodyAttack(MZMode mode) { MZControlUpdate<MZPartControl> partControlUpdate = mode.AddPartControlUpdater(); MZPartControl partControl = new MZPartControl( partsByNameDictionary[ "MainBody" ] ); partControlUpdate.Add( partControl ); MZAttack_Idle show = partControl.AddAttack<MZAttack_Idle>(); show.duration = 1.0f; show.isRunOnce = true; MZAttack_OddWay nWay = partControl.AddAttack<MZAttack_OddWay>(); nWay.bulletName = "EBBee"; nWay.numberOfWays = 7; nWay.colddown = 0.25f; nWay.intervalDegrees = 10; nWay.initVelocity = 400; nWay.duration = 1.0f; nWay.additionalWaysPerLaunch = -2; nWay.targetHelp = new MZTargetHelp_Target(); nWay.targetHelp.calcuteEveryTime = false; nWay.offsetPositionsList.Add( new Vector2( 0, 0 ) ); for( int i = 0; i < nWay.numberOfWays; i++ ) { nWay.offsetPositionsList.Add( new Vector2( -40*i, 0 ) ); nWay.offsetPositionsList.Add( new Vector2( 40*i, 0 ) ); } MZAttack_Idle cd = partControl.AddAttack<MZAttack_Idle>(); cd.duration = 4.0f; }
void SetSubCannonAttack(string cannonName, MZMode mode) { MZControlUpdate<MZPartControl> partControlUpdate = mode.AddPartControlUpdater(); MZPartControl partControl = new MZPartControl( partsByNameDictionary[ cannonName ] ); partControlUpdate.Add( partControl ); MZAttack_Idle show = partControl.AddAttack<MZAttack_Idle>(); show.duration = 1.0f; show.isRunOnce = true; MZAttack_Idle wait1 = partControl.AddAttack<MZAttack_Idle>(); wait1.duration = 2.0f; MZAttack_OddWay attack = partControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 1; attack.bulletName = "EBDonuts"; attack.initVelocity = 250; attack.targetHelp = new MZTargetHelp_Target(); attack.targetHelp.calcuteEveryTime = true; attack.colddown = 0.05f; attack.additionalVelocity = 50; attack.duration = 0.5f; MZAttack_Idle wait2 = partControl.AddAttack<MZAttack_Idle>(); wait2.duration = 2.5f; }
protected override void NewEnemyBeforeEnable(MZEnemy enemy) { enemy.healthPoint = 4; MZMode mode = enemy.AddMode( "mode" ); MZMove_TurnTo move = mode.AddMove<MZMove_TurnTo>( "GoTurn" ); move.direction = ( positionType == PositionType.Left )? 0 : 180; move.velocity = 200; move.totalTime = 4; move.rotationType = ( positionType == PositionType.Left )? MZMove.RotationType.CW : MZMove.RotationType.CCW; move.destinationDegrees = ( positionType == PositionType.Left )? -45 : -135; MZPartControl partControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( partControl ); MZAttack_OddWay attack = partControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 3; attack.colddown = 10; attack.duration = -1; attack.intervalDegrees = 15; attack.initVelocity = 500; attack.bulletName = "EBDonuts"; attack.targetHelp = new MZTargetHelp_Target(); attack.isRunOnce = true; }
void AddOddWayAttack(MZCharacterPart part, MZMode mode) { MZPartControl partControl = new MZPartControl( part ); MZControlUpdate<MZPartControl> partControlUpdate = mode.AddPartControlUpdater(); partControlUpdate.Add( partControl ); MZAttack_OddWay attack = partControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 1; attack.colddown = 0.3f; attack.duration = 0.1f; attack.initVelocity = 500; attack.bulletName = "EBDonuts"; attack.targetHelp = new MZTargetHelp_Target(); MZAttack_Idle idle = partControl.AddAttack<MZAttack_Idle>(); idle.duration = 3; }
void SetMainAttack(string partName, MZMode mode) { MZControlUpdate<MZPartControl> partControlUpdate = mode.AddPartControlUpdater(); MZPartControl partControl = new MZPartControl( partsByNameDictionary[ partName ] ); partControlUpdate.Add( partControl ); MZAttack_Idle show = partControl.AddAttack<MZAttack_Idle>(); show.duration = 1.0f; show.isRunOnce = true; MZAttack_OddWay nWay = partControl.AddAttack<MZAttack_OddWay>(); nWay.bulletName = "EBBee"; nWay.numberOfWays = 7; nWay.colddown = 0.25f; nWay.intervalDegrees = 10; nWay.initVelocity = 400; nWay.duration = 1.0f; nWay.additionalWaysPerLaunch = -2; nWay.targetHelp = new MZTargetHelp_Target(); MZAttack_Idle cd = partControl.AddAttack<MZAttack_Idle>(); cd.duration = 4.0f; }
protected override void NewEnemyBeforeEnable(MZEnemy enemy) { enemy.healthPoint = 4; MZMode mode = enemy.AddMode( "mode" ); MZMove_ToTarget move = mode.AddMove<MZMove_ToTarget>( "GoDie" ); move.velocity = 200; move.target.calcuteEveryTime = true; MZPartControl partControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( partControl ); MZAttack_OddWay attack = partControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 3; attack.colddown = 10; attack.duration = -1; attack.intervalDegrees = 15; attack.initVelocity = 500; attack.bulletName = "EBDonuts"; attack.targetHelp = new MZTargetHelp_Target(); attack.isRunOnce = true; }
void SetMainEnemy(MZEnemy enemy) { enemy.healthPoint = 30; MZMode mode = enemy.AddMode( "m" ); AddCommonMove( mode, "common1" ).duration = _showTime; mode.AddMove<MZMove_Idle>( "idle" ).duration = _splitTime; AddCommonMove( mode, "common2" ); MZPartControl partControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( partControl ); partControl.AddAttack<MZAttack_Idle>().duration = _showTime;// _showTime + 0.5f; // MZAttack_OddWay splitOdd = partControl.AddAttack<MZAttack_OddWay>(); splitOdd.bulletName = "EBDonutsLarge"; splitOdd.numberOfWays = 18; splitOdd.initVelocity = 500; splitOdd.colddown = 0.1f; splitOdd.duration = 0.1f; splitOdd.intervalDegrees = 360/splitOdd.numberOfWays; splitOdd.isRunOnce = true; partControl.AddAttack<MZAttack_Idle>().duration = 0.5f; MZAttack_OddWay odd = partControl.AddAttack<MZAttack_OddWay>(); odd.bulletName = "EBDonuts"; odd.numberOfWays = 16; odd.initVelocity = 300; odd.colddown = 0.25f; odd.duration = 1; odd.additionalVelocity = 50; odd.intervalDegrees = 360/odd.numberOfWays; odd.targetHelp = new MZTargetHelp_AssignDirection(); ( odd.targetHelp as MZTargetHelp_AssignDirection ).direction = 45; }
void SetSubEnemy(MZEnemy enemy) { enemy.healthPoint = 8; MZMode mode = enemy.AddMode( "m" ); AddCommonMove( mode, "common1" ).duration = _showTime; AddSplitMoveToSubEmemy( mode ); AddCommonMove( mode, "common2" ); MZPartControl partControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( partControl ); partControl.AddAttack<MZAttack_Idle>().duration = _showTime + 0.8f; MZAttack_OddWay odd = partControl.AddAttack<MZAttack_OddWay>(); odd.bulletName = "EBBee"; odd.colddown = 1.0f; odd.duration = 1.0f; odd.initVelocity = 400; odd.numberOfWays = 1; odd.targetHelp = new MZTargetHelp_Target(); }
protected override void NewEnemyBeforeEnable(MZEnemy enemy) { enemy.healthPoint = 10; enemy.enableRemoveTime = 12; MZMode mode = enemy.AddMode( "mode" ); switch( _constructCode ) { case 0: SetType1Move( mode, enemy ); break; case 1: SetType2Move( mode, enemy ); break; case 2: SetType3Move( mode, enemy ); break; default: MZDebug.AssertFalse( "not supprt code=" + _constructCode.ToString() ); break; } // main attack MZPartControl mainPartControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( mainPartControl ); mainPartControl.getFaceTo = new MZPartControl.GetFaceTo( testFaceTo ); MZAttack_Idle attackIdle = mainPartControl.AddAttack<MZAttack_Idle>(); attackIdle.duration = 0.8f; attackIdle.isRunOnce = true; MZAttack_OddWay attack = mainPartControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 1; attack.initVelocity = 200; attack.additionalVelocity = 50; attack.bulletName = "EBBee2"; attack.colddown = 0.05f; attack.duration = 0.15f; attack.targetHelp = new MZTargetHelp_AssignPosition(); ( attack.targetHelp as MZTargetHelp_AssignPosition ).assignPosition = Vector2.zero; MZAttack_Idle attackIdle2 = mainPartControl.AddAttack<MZAttack_Idle>(); attackIdle2.duration = 1.8f; }
void AddMultiVortex(MZPartControl partControl, float degrees) { MZAttack_Idle show = partControl.AddAttack<MZAttack_Idle>(); show.duration = _showTime; show.isRunOnce = true; float oneLoopTime = 3.0f; float intervalDegrees = 4.0f*( ( _innerPositionType == MZFormation.PositionType.Right )? -1 : 1 ); MZAttack_Vortex vortex = partControl.AddAttack<MZAttack_Vortex>(); vortex.bulletName = "EBBee"; vortex.colddown = 0.2f; vortex.initVelocity = 300; vortex.intervalDegrees = intervalDegrees; // vortex.timePerWave = 0.66f; // vortex.resetTime = 0.33f; vortex.duration = oneLoopTime; vortex.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( vortex.targetHelp as MZTargetHelp_AssignDirection ).direction = degrees; partControl.AddAttack<MZAttack_Idle>().duration = 0.33f; MZAttack_Vortex vortex2 = partControl.AddAttack<MZAttack_Vortex>(); vortex2.bulletName = "EBBee"; vortex2.colddown = 0.2f; vortex2.initVelocity = 300; vortex2.intervalDegrees = -intervalDegrees; vortex2.duration = oneLoopTime; vortex2.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( vortex2.targetHelp as MZTargetHelp_AssignDirection ).direction = degrees; partControl.AddAttack<MZAttack_Idle>().duration = 0.33f; }
void SetTwinWay(MZPartControl partControl, Vector2 position, bool isLeft) { MZAttack_OddWay twin = partControl.AddAttack<MZAttack_OddWay>(); twin.initVelocity = 450; twin.numberOfWays = ( rank <= 4 )? 1 : ( rank >= 8 )? 3 : 2; if( rank >= 5 ) { float interval = ( rank >= 8 )? 20 : 10; twin.offsetPositionsList.Add( position + new Vector2( interval*( ( isLeft )? -1 : 1 ), 0 ) ); twin.offsetPositionsList.Add( position + new Vector2( interval*( ( isLeft )? 1 : -1 ), -20 ) ); } if( rank >= 8 || rank <= 4 ) { twin.offsetPositionsList.Add( position + new Vector2( 0, -10 ) ); } twin.colddown = 0.2f; twin.duration = 1.0f - ( ( rank <= 4 )? 0.5f : 0 ); twin.bulletName = "EBBee"; twin.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( twin.targetHelp as MZTargetHelp_AssignDirection ).direction = 270; partControl.AddAttack<MZAttack_Idle>().duration = 3.0f; }
void AddRocketMode(MZEnemy enemy) { MZMode mode = enemy.AddMode( "rocket" ); MZMove_ToTarget move = mode.AddMove<MZMove_ToTarget>( "move" ); move.velocity = 600; move.target.calcuteEveryTime = false; MZPartControl mainPartControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( mainPartControl ); MZAttack_OddWay attack = mainPartControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 1; attack.initVelocity = 300; attack.additionalVelocity = 50; attack.bulletName = "EBDonuts"; attack.colddown = 0.05f; attack.duration = 0.3f; attack.targetHelp = new MZTargetHelp_Target(); attack.targetHelp.calcuteEveryTime = false; mainPartControl.AddAttack<MZAttack_Idle>().duration = -1; }
void AddCrossWayAttack(MZCharacterPart part, MZMode mode, float degree, int way) { MZPartControl partControl = new MZPartControl( part ); mode.AddPartControlUpdater().Add( partControl ); float rankIdle = ( ( rank < 3 )? 0.5f : 0 ); MZAttack_OddWay odd = partControl.AddAttack<MZAttack_OddWay>(); odd.numberOfWays = way; odd.colddown = 0.1f; odd.duration = 1.0f - rankIdle + ( ( rank >= 7 )? -0.6f : 0 ); odd.bulletName = "EBDonuts"; odd.initVelocity = 300; odd.additionalVelocity = 80; odd.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( odd.targetHelp as MZTargetHelp_AssignDirection ).direction = degree; float interval = 50; odd.offsetPositionsList.Add( new Vector2( 0, -interval ) ); odd.offsetPositionsList.Add( new Vector2( -interval, 0 ) ); odd.offsetPositionsList.Add( new Vector2( interval, 0 ) ); MZAttack_Idle idle = partControl.AddAttack<MZAttack_Idle>(); idle.duration = 0.6f + rankIdle; }
protected override void NewEnemyBeforeEnable(MZEnemy enemy) { MZMode mode = enemy.AddMode( "m" ); MZMove_LinearTo move = mode.AddMove<MZMove_LinearTo>( "m" ); move.destinationPosition = _currentNewEnemyDestPos; move.totalTime = 0.3f; move.duration = 1.0f; mode.AddMove<MZMove_Idle>( "idle" ).duration = 3; MZMove_LinearBy leave = mode.AddMove<MZMove_LinearBy>( "leave" ); leave.direction = 270; leave.velocity = 200; MZPartControl mainPartControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( mainPartControl ); MZAttack_Idle attackShow = mainPartControl.AddAttack<MZAttack_Idle>(); attackShow.duration = 0.5f; attackShow.isRunOnce = true; MZAttack_EvenWay attackEven = mainPartControl.AddAttack<MZAttack_EvenWay>(); attackEven.numberOfWays = 4; attackEven.colddown = 0.2f; attackEven.duration = 0.6f; attackEven.intervalDegrees = 45; attackEven.initVelocity = 300;// + 25*currentCreatedMemberCount; // attackEven.additionalVelocity = 50; attackEven.bulletName = "EBBee"; attackEven.targetHelp = new MZTargetHelp_Target(); MZAttack_Idle attackIdleInterval = mainPartControl.AddAttack<MZAttack_Idle>(); attackIdleInterval.duration = 0.3f; MZAttack_OddWay attackOdd = mainPartControl.AddAttack<MZAttack_OddWay>(); attackOdd.numberOfWays = 1; attackOdd.colddown = 0.2f; attackOdd.duration = 0.6f; attackOdd.intervalDegrees = 5; attackOdd.initVelocity = 600;// + 25*currentCreatedMemberCount; attackOdd.bulletName = "EBBee2"; attackOdd.targetHelp = new MZTargetHelp_Target(); // attackOdd.additionalVelocity = 50; MZAttack_Idle attackIdle = mainPartControl.AddAttack<MZAttack_Idle>(); attackIdle.duration = 3.0f; }
protected override void NewEnemyBeforeEnable(MZEnemy enemy) { enemy.healthPoint = 1/*1*rank*/; MZMove.RotationType rotType = rotationType; enemy.partsByNameDictionary[ "MainBody" ].faceTo = new MZFaceTo_MovingDirection(); if( _constructCode == 1 ) { if( positionType == MZFormation.PositionType.Mid ) { enemy.position += new Vector2( 50*( ( currentEnemyCreatedCount%2 == 0 )? 1 : -1 ), 0 ); } else { enemy.position += ( ( currentEnemyCreatedCount%2 == 0 )? new Vector2( 0, 100 ) : Vector2.zero ); } } if( positionType == MZFormation.PositionType.Mid ) { rotType = ( currentEnemyCreatedCount%2 == 0 )? MZMove.RotationType.CCW : MZMove.RotationType.CW; } MZMode mode = enemy.AddMode( "mode" ); // move float velocity = 400; MZMove_LinearBy moveLinear1 = mode.AddMove<MZMove_LinearBy>( "l1" ); moveLinear1.direction = ( positionType == MZFormation.PositionType.Mid )? 270 : GetStartDirection( rotType ); moveLinear1.velocity = velocity; moveLinear1.duration = 0.8f; MZMove_TurnTo moveTurn = mode.AddMove<MZMove_TurnTo>( "t" ); moveTurn.rotationType = rotType; moveTurn.direction = moveLinear1.direction; moveTurn.destinationDegrees = GetDestinationDirection( rotType ); moveTurn.totalTime = 0.5f; moveTurn.duration = 100; moveTurn.velocity = velocity; // main attack MZPartControl mainPartControl = new MZPartControl( enemy.partsByNameDictionary[ "MainBody" ] ); mode.AddPartControlUpdater().Add( mainPartControl ); MZAttack_OddWay attack = mainPartControl.AddAttack<MZAttack_OddWay>(); attack.numberOfWays = 1; attack.initVelocity = 300; attack.additionalVelocity = 150; attack.bulletName = "EBDonuts"; attack.colddown = 0.1f; attack.duration = 0.3f; attack.targetHelp = new MZTargetHelp_Target(); MZAttack_Idle attackIdle = mainPartControl.AddAttack<MZAttack_Idle>(); attackIdle.duration = 3; }
void SetTwinWayAttack(MZPartControl partControl, float degree) { float rankDurationMulitiply = 0.2f*rank; float colddown = 0.15f; float duration = ( 0.3f + ( ( _attackCode == 0 )? 0.6f : 0.3f ) )*rankDurationMulitiply; MZAttack_OddWay oddWay = partControl.AddAttack<MZAttack_OddWay>(); oddWay.colddown = colddown; oddWay.duration = duration; oddWay.numberOfWays = 2; oddWay.offsetPositionsList.Add( MZMath.UnitVectorFromDegrees( degree + 90 )*10 ); oddWay.offsetPositionsList.Add( MZMath.UnitVectorFromDegrees( degree + 90 )*-10 ); oddWay.targetHelp = new MZTargetHelp_AssignDirection(); oddWay.bulletName = "EBBee"; oddWay.initVelocity = 350; ( (MZTargetHelp_AssignDirection)oddWay.targetHelp ).direction = degree; MZAttack_Idle idle1 = partControl.AddAttack<MZAttack_Idle>(); idle1.duration = 1.5f; MZAttack_OddWay oddWay2 = partControl.AddAttack<MZAttack_OddWay>(); oddWay2.colddown = colddown; oddWay2.duration = duration; oddWay2.numberOfWays = 2; oddWay2.offsetPositionsList.Add( MZMath.UnitVectorFromDegrees( degree + 90 + 45 )*10 ); oddWay2.offsetPositionsList.Add( MZMath.UnitVectorFromDegrees( degree + 90 + 45 )*-10 ); oddWay2.targetHelp = new MZTargetHelp_AssignDirection(); oddWay2.bulletName = "EBBee"; oddWay2.initVelocity = 350; ( (MZTargetHelp_AssignDirection)oddWay2.targetHelp ).direction = degree + 45; MZAttack_Idle idle2 = partControl.AddAttack<MZAttack_Idle>(); idle2.duration = 1.5f; }
void AddRingAttack(MZPartControl partControl) { int ways = 15; float velocity = 300; float intervalDegrees = 360.0f/ways; MZAttack_Idle show = partControl.AddAttack<MZAttack_Idle>(); show.duration = _showTime; show.isRunOnce = true; partControl.AddAttack<MZAttack_Idle>().duration = 2.0f; MZAttack_OddWay outRing = partControl.AddAttack<MZAttack_OddWay>(); outRing.numberOfWays = ways; outRing.intervalDegrees = intervalDegrees; outRing.initVelocity = velocity; outRing.bulletName = "EBDonutsLarge"; outRing.colddown = 10.0f; outRing.duration = 0.15f; outRing.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( outRing.targetHelp as MZTargetHelp_AssignDirection ).direction = 270; if( rank < 2 ) return; MZAttack_OddWay innerRing = partControl.AddAttack<MZAttack_OddWay>(); innerRing.numberOfWays = ways*2; innerRing.intervalDegrees = intervalDegrees/2.0f; innerRing.initVelocity = velocity; innerRing.bulletName = "EBDonuts"; innerRing.colddown = 10.0f; innerRing.duration = 0.15f; innerRing.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( innerRing.targetHelp as MZTargetHelp_AssignDirection ).direction = 270 + intervalDegrees/4.0f; if( rank < 4 ) return; MZAttack_OddWay thirdRing = partControl.AddAttack<MZAttack_OddWay>(); thirdRing.numberOfWays = ways; thirdRing.intervalDegrees = intervalDegrees; thirdRing.initVelocity = velocity; thirdRing.bulletName = "EBDonutsSmall"; thirdRing.colddown = 10.0f; thirdRing.duration = 0.15f; thirdRing.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( thirdRing.targetHelp as MZTargetHelp_AssignDirection ).direction = 270 + intervalDegrees/2.0f; if( rank < 7 ) return; MZAttack_OddWay exInnerRing = partControl.AddAttack<MZAttack_OddWay>(); exInnerRing.numberOfWays = ways*2; exInnerRing.intervalDegrees = intervalDegrees/2.0f; exInnerRing.initVelocity = velocity; exInnerRing.bulletName = "EBDonuts"; exInnerRing.colddown = 10.0f; exInnerRing.duration = 0.15f; exInnerRing.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( exInnerRing.targetHelp as MZTargetHelp_AssignDirection ).direction = 270 + intervalDegrees/4.0f; if( rank < 8 ) return; MZAttack_OddWay exOutRing = partControl.AddAttack<MZAttack_OddWay>(); exOutRing.numberOfWays = ways; exOutRing.intervalDegrees = intervalDegrees; exOutRing.initVelocity = velocity; exOutRing.bulletName = "EBDonutsLarge"; exOutRing.colddown = 10.0f; exOutRing.duration = 0.15f; exOutRing.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( exOutRing.targetHelp as MZTargetHelp_AssignDirection ).direction = 270; }
void SetFanWay(MZPartControl partControl, Vector2 position, float idleTime) { partControl.AddAttack<MZAttack_Idle>().duration = idleTime; MZAttack_EvenWay even = partControl.AddAttack<MZAttack_EvenWay>(); even.numberOfWays = 6; even.intervalDegrees = 12; even.initVelocity = 400; even.offsetPositionsList.Add( position ); even.colddown = 100.0f; even.duration = 0.1f; even.bulletName = "EBDonuts"; even.targetHelp = MZTargetHelp.Create<MZTargetHelp_AssignDirection>(); ( even.targetHelp as MZTargetHelp_AssignDirection ).direction = 270; partControl.AddAttack<MZAttack_Idle>().duration = -1; }