public BackgroundBossEx(StageDataPackage StageData) : base(StageData, (string)null, new PointF(0.0f, 0.0f), 0.0f, 0.0) { new BackgroundMove2(StageData, "底面").DirectionDegree = 90.0; BackgroundSC backgroundSc = new BackgroundSC(StageData, "中层"); BackgroundRotate backgroundRotate1 = new BackgroundRotate(StageData, "最上"); backgroundRotate1.DirectionDegree = 90.0; backgroundRotate1.TransparentValueF = 128f; backgroundRotate1.Scale = 1f; backgroundRotate1.Active = false; backgroundRotate1.AngularVelocityDegree = 0.5f; BackgroundRotate backgroundRotate2 = backgroundRotate1; backgroundRotate2.EventGroupList = new List <EventGroup>(); backgroundRotate2.EventsExecutionList = new List <Execution>(); EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 200; eventGroup.addtime = 200; Event @event = new Event(); @event.EventString = "当前帧=1:不透明度变化到5,正弦,200"; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); backgroundRotate2.EventGroupList.Add(eventGroup); }
public object Clone() { EventGroup ev = (EventGroup)MemberwiseClone(); ev.EventList = new List <Event>(); EventList.ForEach(x => ev.EventList.Add((Event)x.Clone())); return(ev); }
public object Clone() { EventGroup ev = (EventGroup)this.MemberwiseClone(); ev.EventList = new List <Event>(); this.EventList.ForEach((Action <Event>)(x => ev.EventList.Add((Event)x.Clone()))); return((object)ev); }
public SpellCard_SSS03_02(StageDataPackage StageData) : base(StageData) { if (this.Difficulty < DifficultLevel.Hard) { this.SC_Name = "火光「火精灵之灾」"; } else { this.SC_Name = "火光「午夜的大火灾」"; } this.BaseScore = 20000000L; this.Boss.DestPoint = (PointF) new Point(this.BoundRect.Width / 2, 120); this.Boss.Velocity = 4f; StageData.SoundPlay("se_cat00.wav"); BackgroundRotate backgroundRotate1 = new BackgroundRotate(StageData, "Card03b"); backgroundRotate1.Scale = 1.3f; backgroundRotate1.TransparentValueF = (float)byte.MaxValue; backgroundRotate1.AngularVelocityDegree = -0.5f; BackgroundRotate backgroundRotate2 = new BackgroundRotate(StageData, "Card03a"); backgroundRotate2.DirectionDegree = 90.0; backgroundRotate2.TransparentValueF = 155f; backgroundRotate2.Scale = 1f; backgroundRotate2.Active = false; backgroundRotate2.AngularVelocityDegree = 0.0f; BackgroundRotate backgroundRotate3 = backgroundRotate2; backgroundRotate3.EventGroupList = new List <EventGroup>(); backgroundRotate3.EventsExecutionList = new List <Execution>(); EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 200; eventGroup.addtime = 200; Event @event = new Event(); @event.EventString = "当前帧=1:不透明度变化到60,正弦,400"; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); backgroundRotate3.EventGroupList.Add(eventGroup); BackgroundRotate backgroundRotate4 = new BackgroundRotate(StageData, "Card03c"); backgroundRotate4.Scale = 0.7f; backgroundRotate4.Active = true; backgroundRotate4.AngularVelocityDegree = 0.2f; BulletTitle bulletTitle = new BulletTitle(StageData, this.SC_Name); SpellCardAttack spellCardAttack = new SpellCardAttack(StageData); new FullPic2(StageData, "FaceKoreirei_ct").Scale = 0.8f; }
public SpellCard_SSS02_03(StageDataPackage StageData) : base(StageData) { if (this.Difficulty < DifficultLevel.Hard) { this.SC_Name = "使魔「自动狩猎装置」"; } else { this.SC_Name = "魔狩「星夜的狩猎舞曲」"; } this.BaseScore = 15000000L; this.Boss.DestPoint = (PointF) new Point(this.BoundRect.Width / 2, 120); this.Boss.Velocity = 4f; StageData.SoundPlay("se_cat00.wav"); BackgroundRotate backgroundRotate1 = new BackgroundRotate(StageData, "Card02b"); backgroundRotate1.Scale = 1.3f; backgroundRotate1.TransparentValueF = (float)byte.MaxValue; backgroundRotate1.AngularVelocityDegree = -0.5f; BackgroundMove2 backgroundMove2_1 = new BackgroundMove2(StageData, "Card02a"); backgroundMove2_1.DirectionDegree = -80.0; backgroundMove2_1.TransparentValueF = 155f; backgroundMove2_1.Scale = 1f; backgroundMove2_1.Active = false; BackgroundMove2 backgroundMove2_2 = backgroundMove2_1; backgroundMove2_2.EventGroupList = new List <EventGroup>(); backgroundMove2_2.EventsExecutionList = new List <Execution>(); EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 200; eventGroup.addtime = 200; Event @event = new Event(); @event.EventString = "当前帧=1:不透明度变化到60,正弦,400"; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); backgroundMove2_2.EventGroupList.Add(eventGroup); BackgroundRotate backgroundRotate2 = new BackgroundRotate(StageData, "Card02c"); backgroundRotate2.Scale = 0.7f; backgroundRotate2.Active = true; backgroundRotate2.AngularVelocityDegree = 0.2f; BulletTitle bulletTitle = new BulletTitle(StageData, this.SC_Name); SpellCardAttack spellCardAttack = new SpellCardAttack(StageData); FullPic2 fullPic2 = new FullPic2(StageData, "FaceRakuki_ct"); }
public BackgroundBoss04(StageDataPackage StageData) : base(StageData, (string)null, new PointF(0.0f, 0.0f), 0.0f, 0.0) { BackgroundSC backgroundSc = new BackgroundSC(StageData, "Card04c"); BackgroundRotate backgroundRotate1 = new BackgroundRotate(StageData, "Card04a"); backgroundRotate1.DirectionDegree = 90.0; backgroundRotate1.TransparentValueF = 128f; backgroundRotate1.Scale = 1f; backgroundRotate1.Active = false; backgroundRotate1.AngularVelocityDegree = 0.0f; BackgroundRotate backgroundRotate2 = backgroundRotate1; backgroundRotate2.EventGroupList = new List <EventGroup>(); backgroundRotate2.EventsExecutionList = new List <Execution>(); EventGroup eventGroup1 = new EventGroup(); eventGroup1.index = 0; eventGroup1.tag = "0"; eventGroup1.t = 200; eventGroup1.addtime = 200; Event event1 = new Event(); event1.EventString = "当前帧=1:不透明度变化到5,正弦,200"; event1.String2BulletEvent(); eventGroup1.EventList.Add(event1); backgroundRotate2.EventGroupList.Add(eventGroup1); BackgroundRotate backgroundRotate3 = new BackgroundRotate(StageData, "Card04b"); backgroundRotate3.DirectionDegree = 90.0; backgroundRotate3.TransparentValueF = 128f; backgroundRotate3.Scale = 1f; backgroundRotate3.Active = false; backgroundRotate3.AngularVelocityDegree = 0.0f; BackgroundRotate backgroundRotate4 = backgroundRotate3; backgroundRotate4.EventGroupList = new List <EventGroup>(); backgroundRotate4.EventsExecutionList = new List <Execution>(); EventGroup eventGroup2 = new EventGroup(); eventGroup2.index = 0; eventGroup2.tag = "0"; eventGroup2.t = 200; eventGroup2.addtime = 200; Event event2 = new Event(); event2.EventString = "当前帧=1:不透明度变化到255,正弦,200"; event2.String2BulletEvent(); eventGroup2.EventList.Add(event2); backgroundRotate4.EventGroupList.Add(eventGroup2); }
public override void Drama() { if (this.TimeMain == 1) { this.StageData.SetReplayInfo(this.StageName); if (this.MyPlane == null) { StageDataPackage stageData = this.StageData; Rectangle boundRect = this.BoundRect; int width = boundRect.Width; boundRect = this.BoundRect; int y = boundRect.Height - 50; Point Position = new Point(width, y); this.MyPlane = new BaseMyPlane(stageData, Position); } BackgroundRotate backgroundRotate1 = new BackgroundRotate(this.StageData, "Card02b"); backgroundRotate1.Scale = 1.3f; backgroundRotate1.TransparentValueF = (float)byte.MaxValue; backgroundRotate1.AngularVelocityDegree = -0.5f; BackgroundRotate backgroundRotate2 = new BackgroundRotate(this.StageData, "Card02a"); backgroundRotate2.DirectionDegree = 90.0; backgroundRotate2.TransparentValueF = 155f; backgroundRotate2.Scale = 1f; backgroundRotate2.Active = false; backgroundRotate2.AngularVelocityDegree = 0.0f; BackgroundRotate backgroundRotate3 = backgroundRotate2; backgroundRotate3.EventGroupList = new List <EventGroup>(); backgroundRotate3.EventsExecutionList = new List <Execution>(); EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 200; eventGroup.addtime = 200; Event @event = new Event(); @event.EventString = "当前帧=1:不透明度变化到60,正弦,400"; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); backgroundRotate3.EventGroupList.Add(eventGroup); BackgroundRotate backgroundRotate4 = new BackgroundRotate(this.StageData, "Card02c"); backgroundRotate4.Scale = 0.7f; backgroundRotate4.Active = true; backgroundRotate4.AngularVelocityDegree = 0.2f; } if (this.TimeMain != 50) { } if (this.TimeMain % 400 != 100) { } }
public BackgroundBoss05(StageDataPackage StageData) : base(StageData, (string)null, new PointF(0.0f, 0.0f), 0.0f, 0.0) { BackgroundRotate backgroundRotate1 = new BackgroundRotate(StageData, "card05b"); backgroundRotate1.Scale = 1.3f; backgroundRotate1.TransparentValueF = (float)byte.MaxValue; backgroundRotate1.AngularVelocityDegree = -0.5f; BackgroundMove2 backgroundMove2_1 = new BackgroundMove2(StageData, "card05c"); backgroundMove2_1.DirectionDegree = -180.0; backgroundMove2_1.TransparentValueF = 155f; backgroundMove2_1.Scale = 1f; backgroundMove2_1.Active = false; BackgroundMove2 backgroundMove2_2 = backgroundMove2_1; backgroundMove2_2.EventGroupList = new List <EventGroup>(); backgroundMove2_2.EventsExecutionList = new List <Execution>(); EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 200; eventGroup.addtime = 200; Event @event = new Event(); @event.EventString = "当前帧=1:不透明度变化到60,正弦,400"; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); backgroundMove2_2.EventGroupList.Add(eventGroup); BackgroundRotate backgroundRotate2 = new BackgroundRotate(StageData, "card05a"); backgroundRotate2.Scale = 0.7f; backgroundRotate2.Active = true; backgroundRotate2.AngularVelocityDegree = 0.2f; }
public SpellCard_SSS03_04(StageDataPackage StageData) : base(StageData) { if (this.Difficulty < DifficultLevel.Hard) { this.SC_Name = "妖符「柳下妖蝉」"; } else { this.SC_Name = "妖符「柳下妖蝉」"; } this.BaseScore = 20000000L; this.Boss.DestPoint = (PointF) new Point(this.BoundRect.Width / 2, 120); this.Boss.Velocity = 4f; StageData.SoundPlay("se_cat00.wav"); BackgroundRotate backgroundRotate = new BackgroundRotate(StageData, "Card03f"); backgroundRotate.Scale = 1f; backgroundRotate.AngularVelocityDegree = 0.0f; backgroundRotate.AngleDegree = 90.0; backgroundRotate.AngleWithDirection = false; BackgroundMove2 backgroundMove2_1 = new BackgroundMove2(StageData, "Card03d"); backgroundMove2_1.Velocity = 1f; backgroundMove2_1.DirectionDegree = 0.0; backgroundMove2_1.TransparentValueF = 155f; backgroundMove2_1.Scale = 1f; backgroundMove2_1.Active = false; backgroundMove2_1.AngularVelocityDegree = 0.0f; BackgroundMove2 backgroundMove2_2 = backgroundMove2_1; backgroundMove2_2.EventGroupList = new List <EventGroup>(); backgroundMove2_2.EventsExecutionList = new List <Execution>(); EventGroup eventGroup1 = new EventGroup(); eventGroup1.index = 0; eventGroup1.tag = "0"; eventGroup1.t = 200; eventGroup1.addtime = 200; Event event1 = new Event(); event1.EventString = "当前帧=1:不透明度变化到60,正弦,400"; event1.String2BulletEvent(); eventGroup1.EventList.Add(event1); backgroundMove2_2.EventGroupList.Add(eventGroup1); BackgroundMove2 backgroundMove2_3 = new BackgroundMove2(StageData, "Card03e"); backgroundMove2_3.Velocity = 1f; backgroundMove2_3.DirectionDegree = 180.0; backgroundMove2_3.TransparentValueF = 60f; backgroundMove2_3.Scale = 1f; backgroundMove2_3.Active = false; backgroundMove2_3.AngularVelocityDegree = 0.0f; BackgroundMove2 backgroundMove2_4 = backgroundMove2_3; backgroundMove2_4.EventGroupList = new List <EventGroup>(); backgroundMove2_4.EventsExecutionList = new List <Execution>(); EventGroup eventGroup2 = new EventGroup(); eventGroup2.index = 0; eventGroup2.tag = "0"; eventGroup2.t = 200; eventGroup2.addtime = 200; Event event2 = new Event(); event2.EventString = "当前帧=1:不透明度变化到155,正弦,400"; event2.String2BulletEvent(); eventGroup2.EventList.Add(event2); backgroundMove2_4.EventGroupList.Add(eventGroup2); BulletTitle bulletTitle = new BulletTitle(StageData, this.SC_Name); SpellCardAttack spellCardAttack = new SpellCardAttack(StageData); FullPic2 fullPic2 = new FullPic2(StageData, "FaceSeiryuu_ct"); }
public void String2Data(StageDataPackage StageData) { EmitterList.Clear(); int num1 = 0; string[] mbGtext1 = MBGtext; int index1 = num1; int num2 = index1 + 1; if (mbGtext1[index1] != "Crazy Storm Data 1.01") { int num3 = (int)MessageBox.Show("当前暂不支持除1.01以外的数据格式", "错误", MessageBoxButtons.OK, MessageBoxIcon.Hand); } else { string[] mbGtext2 = MBGtext; int index2 = num2; int num4 = index2 + 1; string str1 = mbGtext2[index2]; if (str1.Contains("Types")) { int num5 = int.Parse(str1.Split(' ')[0]); for (int index3 = 0; index3 < num5; ++index3) { MBGtext[num4++].Split('_'); } str1 = MBGtext[num4++]; } if (str1.Contains("GlobalEvents")) { int num5 = int.Parse(str1.Split(' ')[0]); for (int index3 = 0; index3 < num5; ++index3) { string str2 = MBGtext[num4++]; } str1 = MBGtext[num4++]; } if (str1.Contains("Sounds")) { int num5 = int.Parse(str1.Split(' ')[0]); for (int index3 = 0; index3 < num5; ++index3) { string str2 = MBGtext[num4++]; } string str3 = MBGtext[num4++]; } string[] mbGtext3 = MBGtext; int index4 = num4; int num6 = index4 + 1; TimeTotal = int.Parse(mbGtext3[index4].Split(':')[1]); for (int index3 = 0; index3 < 4; ++index3) { string str2 = MBGtext[num6++]; if (str2.Split(':')[1].Split(',')[0] != "empty") { int num5 = int.Parse(str2.Split(':')[1].Split(',')[3]); for (int index5 = 0; index5 < num5; ++index5) { string[] strArray = MBGtext[num6++].Split(','); EmitterMode EmitterMode = EmitterMode.Bullet; if (strArray.Length > 91) { if (bool.Parse(strArray[81])) { EmitterMode = EmitterMode.Enemy; } else if (int.Parse(strArray[91]) > 0) { EmitterMode = EmitterMode.Effect; } } BaseEmitter_CS baseEmitterCs = new BaseEmitter_CS(StageData, this, EmitterMode); if (baseEmitterCs.EmitterMode == EmitterMode.Enemy) { EnemyFactory ef = new EnemyFactory(strArray[82]); ef.HealthPoint = int.Parse(strArray[83]); ef.RedCount = int.Parse(strArray[84]); ef.BlueCount = int.Parse(strArray[85]); ef.ColorType = byte.Parse(strArray[86]); ef.BackFire = bool.Parse(strArray[87]); ef.ClearRadius = int.Parse(strArray[88]); ef.GreenCount = int.Parse(strArray[89]); ef.StarFall = (strArray[90] != "0"); baseEmitterCs.SubBullet = ef.GenerateEnemy(StageData); } baseEmitterCs.ID = int.Parse(strArray[0]); baseEmitterCs.LayerID = int.Parse(strArray[1]); baseEmitterCs.BindingState = bool.Parse(strArray[2]); baseEmitterCs.BindingID = int.Parse(strArray[3]); baseEmitterCs.BindWithDirection = bool.Parse(strArray[4]); baseEmitterCs.CS_Position = new PointF(float.Parse(strArray[6]), float.Parse(strArray[7])); baseEmitterCs.StartTime = int.Parse(strArray[8]); baseEmitterCs.Duration = int.Parse(strArray[9]); baseEmitterCs.EmitPoint = new PointF(float.Parse(strArray[10]), float.Parse(strArray[11])); baseEmitterCs.EmitRadius = (float)int.Parse(strArray[12]); baseEmitterCs.RadiusDirection = (double)float.Parse(strArray[13]); string str3 = strArray[14].Replace("{", "").Replace("}", ""); baseEmitterCs.RadiusDirectionPoint = new PointF(float.Parse(str3.Split(' ')[0].Split(':')[1]), float.Parse(str3.Split(' ')[1].Split(':')[1])); baseEmitterCs.Way = int.Parse(strArray[15]); baseEmitterCs.Circle = int.Parse(strArray[16]); baseEmitterCs.EmitDirection = (double)float.Parse(strArray[17]); string str4 = strArray[18].Replace("{", "").Replace("}", ""); baseEmitterCs.EmitDirectionPoint = new PointF(float.Parse(str4.Split(' ')[0].Split(':')[1]), float.Parse(str4.Split(' ')[1].Split(':')[1])); baseEmitterCs.Range = (double)int.Parse(strArray[19]); baseEmitterCs.Velocity = float.Parse(strArray[20]); baseEmitterCs.DirectionDegree = (double)float.Parse(strArray[21]); string str5 = strArray[22].Replace("{", "").Replace("}", ""); baseEmitterCs.DestPoint = new PointF(float.Parse(str5.Split(' ')[0].Split(':')[1]), float.Parse(str5.Split(' ')[1].Split(':')[1])); baseEmitterCs.AccelerateCS = float.Parse(strArray[23]); baseEmitterCs.AccDirection = (double)float.Parse(strArray[24]); baseEmitterCs.SubBullet.LifeTime = int.Parse(strArray[26]); baseEmitterCs.SubBullet.Type = int.Parse(strArray[27]); baseEmitterCs.SubBullet.ScaleWidth = float.Parse(strArray[28]); baseEmitterCs.SubBullet.ScaleLength = float.Parse(strArray[29]); baseEmitterCs.SubBullet.ColorValue = Color.FromArgb(int.Parse(strArray[30]), int.Parse(strArray[31]), int.Parse(strArray[32])); baseEmitterCs.SubBullet.TransparentValueF = (float)(int.Parse(strArray[33]) * (int)byte.MaxValue / 100); baseEmitterCs.SubBullet.AngleDegree = (double)float.Parse(strArray[34]) + 180.0; baseEmitterCs.SubBullet.AngleWithDirection = bool.Parse(strArray[36]); baseEmitterCs.SubBullet.Velocity = float.Parse(strArray[37]); baseEmitterCs.SubBullet.DirectionDegree = (double)float.Parse(strArray[38]); baseEmitterCs.SubBullet.DestPoint = new PointF(float.Parse(str5.Split(' ')[0].Split(':')[1]), float.Parse(str5.Split(' ')[1].Split(':')[1])); baseEmitterCs.SubBullet.AccelerateCS = float.Parse(strArray[40]); baseEmitterCs.SubBullet.AccDirection = (double)float.Parse(strArray[41]); baseEmitterCs.SubBullet.ScaleX = float.Parse(strArray[43]); baseEmitterCs.SubBullet.ScaleY = float.Parse(strArray[44]); baseEmitterCs.SubBullet.BeginningEffect = bool.Parse(strArray[45]); baseEmitterCs.SubBullet.EndingEffect = bool.Parse(strArray[46]); baseEmitterCs.SubBullet.Active = bool.Parse(strArray[47]); baseEmitterCs.SubBullet.Ghosting = bool.Parse(strArray[48]); baseEmitterCs.SubBullet.OutBound = bool.Parse(strArray[49]); baseEmitterCs.SubBullet.UnRemoveable = bool.Parse(strArray[50]); string str6 = strArray[51]; int index6 = 0; while (true) { if (index6 < str6.Split('&').Length - 1) { string str7 = str6.Split('&')[index6]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index6; eventGroup.tag = str7.Split('|')[0]; eventGroup.t = int.Parse(str7.Split('|')[1]); eventGroup.addtime = int.Parse(str7.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str7.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str7.Split('|')[3].Split(';')[index7]; @event.String2EmitterEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseEmitterCs.EventGroupList.Add(eventGroup); ++index6; } else { break; } } string str8 = strArray[52]; int index8 = 0; while (true) { if (index8 < str8.Split('&').Length - 1) { string str7 = str8.Split('&')[index8]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index8; eventGroup.tag = str7.Split('|')[0]; eventGroup.t = int.Parse(str7.Split('|')[1]); eventGroup.addtime = int.Parse(str7.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str7.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str7.Split('|')[3].Split(';')[index7]; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseEmitterCs.SubBullet.EventGroupList.Add(eventGroup); ++index8; } else { break; } } baseEmitterCs.RanX = float.Parse(strArray[53]); baseEmitterCs.RanY = float.Parse(strArray[54]); baseEmitterCs.RanRadius = (float)int.Parse(strArray[55]); baseEmitterCs.RanRadiusDirection = (double)float.Parse(strArray[56]); baseEmitterCs.RanWay = int.Parse(strArray[57]); baseEmitterCs.RanCircle = int.Parse(strArray[58]); baseEmitterCs.RanEmitDirection = (double)float.Parse(strArray[59]); baseEmitterCs.RanRange = (double)int.Parse(strArray[60]); baseEmitterCs.RanVelocity = float.Parse(strArray[61]); baseEmitterCs.RanDirection = (double)float.Parse(strArray[62]); baseEmitterCs.RanAccelerate = float.Parse(strArray[63]); baseEmitterCs.RanAccDirection = (double)float.Parse(strArray[64]); baseEmitterCs.SubBullet.RanAngle = (double)float.Parse(strArray[65]); baseEmitterCs.SubBullet.RanVelocity = float.Parse(strArray[66]); baseEmitterCs.SubBullet.RanDirection = (double)float.Parse(strArray[67]); baseEmitterCs.SubBullet.RanAccelerate = float.Parse(strArray[68]); baseEmitterCs.SubBullet.RanAccDirection = (double)float.Parse(strArray[69]); if (strArray.Length > 72) { baseEmitterCs.SubBullet.Cover = bool.Parse(strArray[70]); baseEmitterCs.SubBullet.Rebound = bool.Parse(strArray[71]); baseEmitterCs.SubBullet.Force = bool.Parse(strArray[72]); } if (strArray.Length > 73) { baseEmitterCs.DeepBinding = bool.Parse(strArray[73]); } if (strArray.Length > 79) { baseEmitterCs.MotionBinding = bool.Parse(strArray[74]); if (baseEmitterCs.SubBullet is BaseBullet_Touhou) { ((BaseBullet_Touhou)baseEmitterCs.SubBullet).Reflect = byte.Parse(strArray[75]); ((BaseBullet_Touhou)baseEmitterCs.SubBullet).Layer = int.Parse(strArray[78]); } baseEmitterCs.SoundName = strArray[76]; baseEmitterCs.SpecifySE = bool.Parse(strArray[77]); if (int.Parse(strArray[79]) != 0) { baseEmitterCs.SubBullet.Region = int.Parse(strArray[79]); ((BaseBullet_Touhou)baseEmitterCs.SubBullet).SizeValue = baseEmitterCs.SubBullet.Region * 2; } } if (strArray.Length > 95) { baseEmitterCs.EffectType = int.Parse(strArray[91]); if (strArray[92] != null && StageData.TextureObjectDictionary.ContainsKey(strArray[92])) { baseEmitterCs.SubBullet.TxtureObject = StageData.TextureObjectDictionary[strArray[92]]; } baseEmitterCs.Count = int.Parse(strArray[94]); baseEmitterCs.Count = baseEmitterCs.Count < 1 ? 1 : baseEmitterCs.Count; baseEmitterCs.DeltaV = float.Parse(strArray[95]); } if (strArray.Length > 110) { baseEmitterCs.RDirectionWithDirection = !(strArray[96] == "0"); } EmitterList.Add(baseEmitterCs); if (EmitterMode == EmitterMode.Bullet) { BaseEmitter_CS b2 = new BaseEmitter_CS(StageData, this, EmitterMode); b2 = (BaseEmitter_CS)baseEmitterCs.Clone(); b2.SubBullet.Velocity = baseEmitterCs.SubBullet.Velocity * 1.5f; b2.SubBullet.AccelerateCS = baseEmitterCs.SubBullet.AccelerateCS * 1.5f; EmitterList.Add(b2); } } if (str2.Split(':')[1].Split(',').Length >= 7) { int num7 = int.Parse(str2.Split(':')[1].Split(',')[4]); for (int index5 = 0; index5 < num7; ++index5) { string str3 = MBGtext[num6++]; string[] strArray = str3.Split(','); BaseEmitter_CS baseEmitterCs = !bool.Parse(strArray[29]) ? (strArray.Length <= 61 ? new BaseEmitter_CS(StageData, this, EmitterMode.StraightLaser) : (!bool.Parse(strArray[61]) ? new BaseEmitter_CS(StageData, this, EmitterMode.StraightLaser) : new BaseEmitter_CS(StageData, this, EmitterMode.BendLaser))) : new BaseEmitter_CS(StageData, this, EmitterMode.RadialLaser); baseEmitterCs.ID = int.Parse(strArray[0]); baseEmitterCs.LayerID = int.Parse(strArray[1]); baseEmitterCs.BindingState = bool.Parse(strArray[2]); baseEmitterCs.BindingID = int.Parse(strArray[3]); baseEmitterCs.BindWithDirection = bool.Parse(strArray[4]); baseEmitterCs.CS_Position = new PointF(float.Parse(strArray[6]), float.Parse(strArray[7])); baseEmitterCs.StartTime = int.Parse(strArray[8]); baseEmitterCs.Duration = int.Parse(strArray[9]); baseEmitterCs.EmitRadius = (float)int.Parse(strArray[10]); baseEmitterCs.RadiusDirection = (double)float.Parse(strArray[11]); baseEmitterCs.Way = int.Parse(strArray[13]); baseEmitterCs.Circle = int.Parse(strArray[14]); baseEmitterCs.EmitDirection = (double)float.Parse(strArray[15]); baseEmitterCs.Range = (double)int.Parse(strArray[17]); baseEmitterCs.Velocity = float.Parse(strArray[18]); baseEmitterCs.DirectionDegree = (double)float.Parse(strArray[19]); baseEmitterCs.AccelerateCS = float.Parse(strArray[21]); baseEmitterCs.AccDirection = (double)float.Parse(strArray[22]); baseEmitterCs.SubBullet.LifeTime = int.Parse(strArray[24]); baseEmitterCs.SubBullet.Type = int.Parse(strArray[25]); if (baseEmitterCs.EmitterMode == EmitterMode.StraightLaser || baseEmitterCs.EmitterMode == EmitterMode.BendLaser) { baseEmitterCs.SubBullet.ScaleLength = float.Parse(strArray[26]); baseEmitterCs.SubBullet.GhostingCount = int.Parse(strArray[27]); } else { baseEmitterCs.SubBullet.MaxScaleW = (float)int.Parse(strArray[27]) / 256f; baseEmitterCs.SubBullet.ScaleWidth = baseEmitterCs.SubBullet.MaxScaleW; baseEmitterCs.SubBullet.MaxScaleL = 1f; baseEmitterCs.SubBullet.ScaleLength = 0.2f; } baseEmitterCs.SubBullet.TransparentValueF = (float)(int.Parse(strArray[28]) * (int)byte.MaxValue / 100); baseEmitterCs.SubBullet.Velocity = float.Parse(strArray[30]); baseEmitterCs.SubBullet.DirectionDegree = (double)float.Parse(strArray[31]); baseEmitterCs.SubBullet.AccelerateCS = float.Parse(strArray[33]); baseEmitterCs.SubBullet.AccDirection = (double)float.Parse(strArray[34]); baseEmitterCs.SubBullet.Active = bool.Parse(strArray[38]); baseEmitterCs.SubBullet.UnRemoveable = bool.Parse(strArray[40]); string str4 = strArray[42]; int index6 = 0; while (true) { if (index6 < str4.Split('&').Length - 1) { string str5 = str4.Split('&')[index6]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index6; eventGroup.tag = str5.Split('|')[0]; eventGroup.t = int.Parse(str5.Split('|')[1]); eventGroup.addtime = int.Parse(str5.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str5.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str5.Split('|')[3].Split(';')[index7]; @event.String2EmitterEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseEmitterCs.EventGroupList.Add(eventGroup); ++index6; } else { break; } } string str6 = strArray[43]; int index8 = 0; while (true) { if (index8 < str6.Split('&').Length - 1) { string str5 = str6.Split('&')[index8]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index8; eventGroup.tag = str5.Split('|')[0]; eventGroup.t = int.Parse(str5.Split('|')[1]); eventGroup.addtime = int.Parse(str5.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str5.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str5.Split('|')[3].Split(';')[index7]; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseEmitterCs.SubBullet.EventGroupList.Add(eventGroup); ++index8; } else { break; } } baseEmitterCs.RanRadius = (float)int.Parse(strArray[44]); baseEmitterCs.RanRadiusDirection = (double)float.Parse(strArray[45]); baseEmitterCs.RanWay = int.Parse(strArray[46]); baseEmitterCs.RanCircle = int.Parse(strArray[47]); baseEmitterCs.RanEmitDirection = (double)float.Parse(strArray[48]); baseEmitterCs.RanRange = (double)int.Parse(strArray[49]); baseEmitterCs.RanVelocity = float.Parse(strArray[50]); baseEmitterCs.RanDirection = (double)float.Parse(strArray[51]); baseEmitterCs.RanAccelerate = float.Parse(strArray[52]); baseEmitterCs.RanAccDirection = (double)float.Parse(strArray[53]); baseEmitterCs.SubBullet.RanVelocity = float.Parse(strArray[54]); baseEmitterCs.SubBullet.RanDirection = (double)float.Parse(strArray[55]); baseEmitterCs.SubBullet.RanAccelerate = float.Parse(strArray[56]); baseEmitterCs.SubBullet.RanAccDirection = (double)float.Parse(strArray[57]); if (strArray.Length > 58) { baseEmitterCs.DeepBinding = bool.Parse(strArray[58]); } if (strArray.Length > 62) { if (baseEmitterCs.SubBullet is BaseBullet_Touhou) { ((BaseBullet_Touhou)baseEmitterCs.SubBullet).Reflect = byte.Parse(str3.Split(',')[59]); } baseEmitterCs.MotionBinding = (bool.Parse(str3.Split(',')[60]) ? 1 : 0) != 0; if (baseEmitterCs.EmitterMode == EmitterMode.StraightLaser) { ((Bullet_StraightLaser)baseEmitterCs.SubBullet).LaserHead = (bool.Parse(str3.Split(',')[62]) ? 1 : 0) != 0; } } EmitterList.Add(baseEmitterCs); } int num8 = int.Parse(str2.Split(':')[1].Split(',')[5]); for (int index5 = 0; index5 < num8; ++index5) { string[] strArray = MBGtext[num6++].Split(','); BaseCover_CS baseCoverCs = new BaseCover_CS(StageData); baseCoverCs.MaxScale = 1000f; baseCoverCs.ID = int.Parse(strArray[0]); baseCoverCs.LayerID = int.Parse(strArray[1]); baseCoverCs.CS_Position = new PointF(float.Parse(strArray[2]), float.Parse(strArray[3])); baseCoverCs.StartTime = int.Parse(strArray[4]); baseCoverCs.Duration = int.Parse(strArray[5]); baseCoverCs.ScaleWidth = (float)int.Parse(strArray[6]); baseCoverCs.ScaleLength = (float)int.Parse(strArray[7]); baseCoverCs.Roundness = bool.Parse(strArray[8]); baseCoverCs.Type = int.Parse(strArray[9]); baseCoverCs.CtrlID = int.Parse(strArray[10]); baseCoverCs.Velocity = float.Parse(strArray[11]); baseCoverCs.DirectionDegree = (double)float.Parse(strArray[12]); baseCoverCs.AccelerateCS = float.Parse(strArray[14]); baseCoverCs.AccDirection = (double)float.Parse(strArray[15]); string str3 = strArray[17]; int index6 = 0; while (true) { if (index6 < str3.Split('&').Length - 1) { string str4 = str3.Split('&')[index6]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index6; eventGroup.tag = str4.Split('|')[0]; eventGroup.t = int.Parse(str4.Split('|')[1]); eventGroup.addtime = int.Parse(str4.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str4.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str4.Split('|')[3].Split(';')[index7]; @event.String2EmitterEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseCoverCs.EventGroupList.Add(eventGroup); ++index6; } else { break; } } string str5 = strArray[18]; int index8 = 0; while (true) { if (index8 < str5.Split('&').Length - 1) { string str4 = str5.Split('&')[index8]; EventGroup eventGroup = new EventGroup(); eventGroup.index = index8; eventGroup.tag = str4.Split('|')[0]; eventGroup.t = int.Parse(str4.Split('|')[1]); eventGroup.addtime = int.Parse(str4.Split('|')[2]); int index7 = 0; while (true) { if (index7 < str4.Split('|')[3].Split(';').Length - 1) { Event @event = new Event(); @event.EventString = str4.Split('|')[3].Split(';')[index7]; @event.String2BulletEvent(); eventGroup.EventList.Add(@event); ++index7; } else { break; } } baseCoverCs.SubEventGroupList.Add(eventGroup); ++index8; } else { break; } } baseCoverCs.RanVelocity = float.Parse(strArray[19]); baseCoverCs.RanDirection = (double)float.Parse(strArray[20]); baseCoverCs.RanAccelerate = float.Parse(strArray[21]); baseCoverCs.RanAccDirection = (double)float.Parse(strArray[22]); if (strArray.Length >= 24) { baseCoverCs.BindingID = int.Parse(strArray[23]); } if (strArray.Length >= 25 && strArray[24] != "") { baseCoverCs.DeepBinding = bool.Parse(strArray[24]); } EmitterList.Add((BaseEmitter_CS)baseCoverCs); } int num9 = int.Parse(str2.Split(':')[1].Split(',')[6]); string str7; for (int index5 = 0; index5 < num9; ++index5) { str7 = MBGtext[num6++]; } int num10 = int.Parse(str2.Split(':')[1].Split(',')[7]); for (int index5 = 0; index5 < num10; ++index5) { str7 = MBGtext[num6++]; } } } } } }
public override void Ctrl() { base.Ctrl(); if (1 < this.Time && this.Time < 60) { int num1 = 7; double num2 = 360.0 / (double)num1; for (int index = 0; index < num1; ++index) { BaseEffect baseEffect1 = new BaseEffect(this.StageData, "bullet23_0", this.Position, 1.5f, 0.0); baseEffect1.DirectionDegree = (double)(this.Time * 18) + num2 * (double)index; baseEffect1.ScaleWidth = 0.3f; baseEffect1.ScaleLength = 0.3f; baseEffect1.LifeTime = 999; BaseEffect baseEffect2 = baseEffect1; baseEffect2.OutBound = false; baseEffect2.DirectionVelocityDegree = -2.8f; baseEffect2.VelocityDictionary.Add(40, 3f); baseEffect2.AccelerateDictionary.Add(115, 2f); baseEffect2.AccelerateDictionary.Add(123, 0.0f); baseEffect2.DirectionVelocityDegreeDictionary.Add(115, (float)((this.Ran.NextPMDouble() - 80.0) / 45.0)); baseEffect2.DirectionVelocityDegreeDictionary.Add(160, 0.0f); baseEffect2.ScaleLengthVelocityDictionary.Add(115, 0.3f); baseEffect2.ScaleWidthVelocityDictionary.Add(115, 0.1f); baseEffect2.ScaleLengthVelocityDictionary.Add(120, 0.0f); baseEffect2.ScaleWidthVelocityDictionary.Add(120, 0.0f); baseEffect2.SetBinding((BaseObject)this); BaseEffect baseEffect3 = new BaseEffect(this.StageData, "bullet23_0", this.Position, 1.5f, 0.0); baseEffect3.DirectionDegree = (double)(180 - this.Time * 18) + num2 * (double)index; baseEffect3.ScaleWidth = 0.3f; baseEffect3.ScaleLength = 0.3f; baseEffect3.LifeTime = 999; BaseEffect baseEffect4 = baseEffect3; baseEffect4.OutBound = false; baseEffect4.DirectionVelocityDegree = 2.8f; baseEffect4.VelocityDictionary.Add(40, 3f); baseEffect4.AccelerateDictionary.Add(115, 2f); baseEffect4.AccelerateDictionary.Add(123, 0.0f); baseEffect4.DirectionVelocityDegreeDictionary.Add(115, (float)((80.0 + this.Ran.NextPMDouble()) / 45.0)); baseEffect4.DirectionVelocityDegreeDictionary.Add(160, 0.0f); baseEffect4.ScaleLengthVelocityDictionary.Add(115, 0.3f); baseEffect4.ScaleWidthVelocityDictionary.Add(115, 0.1f); baseEffect4.ScaleLengthVelocityDictionary.Add(120, 0.0f); baseEffect4.ScaleWidthVelocityDictionary.Add(120, 0.0f); baseEffect4.SetBinding((BaseObject)this); } } if (130 < this.Time && this.Time < 220) { for (int index = 0; index < 3; ++index) { BaseEffect_CS baseEffectCs1 = new BaseEffect_CS(this.StageData); baseEffectCs1.TxtureObject = this.TextureObjectDictionary["bullet50_0"]; BaseEffect_CS baseEffectCs2 = baseEffectCs1; Rectangle boundRect = this.BoundRect; double num1 = (double)(boundRect.Width / 2) + 200.0 * this.Ran.NextPMDouble(); boundRect = this.BoundRect; double num2 = (double)(boundRect.Height / 2) + 280.0 * this.Ran.NextPMDouble(); PointF pointF = new PointF((float)num1, (float)num2); baseEffectCs2.OriginalPosition = pointF; baseEffectCs1.Velocity = (float)this.Ran.NextPMDouble(); baseEffectCs1.Direction = Math.PI / 2.0 * this.Ran.NextPMDouble(); baseEffectCs1.Scale = 0.05f; baseEffectCs1.LifeTime = 40; EventGroup eventGroup = new EventGroup(); eventGroup.index = 0; eventGroup.tag = "0"; eventGroup.t = 15; eventGroup.addtime = 15; Event event1 = new Event(); event1.EventString = "当前帧=1:高比变化到0,正弦,14"; event1.String2BulletEvent(); eventGroup.EventList.Add(event1); Event event2 = new Event(); event2.EventString = "当前帧=1:宽比变化到0,正弦,14"; event2.String2BulletEvent(); eventGroup.EventList.Add(event2); baseEffectCs1.EventGroupList.Add(eventGroup); this.EffectList.Add((BaseEffect)baseEffectCs1); } } if (this.Time != 122) { return; } this.ScaleVelocity = 10f; EmitterGiveOutEnegy3D emitterGiveOutEnegy3D = new EmitterGiveOutEnegy3D(this.StageData, this.OriginalPosition, Color.White); this.StageData.SoundPlay("se_cat00.wav"); this.StageData.VibrateStart(this.LifeTime - this.Time); }