void OnMusicTransition(ref MyEventMusicTransition msg) { switch (msg.MusicEventType) { case MyMusicEventEnum.STOP_MUSIC: MyScriptWrapper.StopMusic(); break; case MyMusicEventEnum.STOP_TRANSITION: MyScriptWrapper.StopTransition(msg.Priority); break; case MyMusicEventEnum.APPLY_TRANSITION: { var transition = (MyMusicTransitionEnum)msg.TransitionEnum; if (!MyMwcEnums.IsValidValue(transition)) { Alert("Invalid MyMusicTransitionEnum", msg.SenderEndpoint, msg.EventType); return; } MyScriptWrapper.ApplyTransition(transition, msg.Priority, msg.Category); } break; default: Alert("Unknown music transition type", msg.SenderEndpoint, msg.EventType); break; } }
void OnPlayDialogue(ref MyEventPlayDialogue msg) { if (!MyMwcEnums.IsValidValue((MyDialogueEnum)msg.DialogueEnum)) { Alert("Invalid dialogue enum", msg.SenderEndpoint, msg.EventType); return; } MyScriptWrapper.PlayDialogue((MyDialogueEnum)msg.DialogueEnum); }
void OnEvent(ref MyEventEvent msg) { var eventType = (MyGlobalEventEnum)msg.EventTypeEnum; if (!MyMwcEnums.IsValidValue(eventType)) { Alert("Invalid global event type", msg.SenderEndpoint, msg.EventType); } // TODO: When required, add position and seed MyGlobalEvents.StartGlobalEvent(eventType); }
void OnSetActorFaction(ref MyEventSetActorFaction msg) { var actorEnum = (MyActorEnum)msg.ActorId; if (MyMwcEnums.IsValidValue(actorEnum)) { MyScriptWrapper.SetActorFaction(actorEnum, msg.Faction); } else { Alert("Actor enum invalid", msg.SenderEndpoint, msg.EventType); } }
void OnMissionUpdateVars(ref MyEventMissionUpdateVars msg) { var missionId = (MyMissionID)msg.MissionId; if (!MyMwcEnums.IsValidValue <MyMissionID>(missionId)) { Alert("Invalid mission id!", msg.SenderEndpoint, msg.EventType); return; } var mission = MyMissions.GetMissionByID((MyMissionID)msg.MissionId); mission.MissionTimer.SetElapsedTime(TimeSpan.FromMilliseconds(msg.ElapsedTime)); }
void OnPlaySound(ref MyEventPlaySound msg) { if (!MyMwcEnums.IsValidValue((MySoundCuesEnum)msg.SoundEnum)) { Alert("Invalid sound enum", msg.SenderEndpoint, msg.EventType); return; } if (msg.Position.HasValue) { MyScriptWrapper.PlaySound3D(msg.Position.Value, (MySoundCuesEnum)msg.SoundEnum); } else { MyScriptWrapper.PlaySound2D((MySoundCuesEnum)msg.SoundEnum); } }
public void OnMissionProgress(ref MyEventMissionProgress msg) { if (IsStory() && !IsHost) { ClearCountdownNotification(); Debug.Assert(m_followMission != null); switch (msg.ProgressType) { case MyMissionProgressType.Success: MyMission.ShowObjectiveCompleted(); m_followMission.SetObjectives(null); break; case MyMissionProgressType.Fail: { MyTextsWrapperEnum?message = null; if (msg.MessageEnum.HasValue) { message = (MyTextsWrapperEnum)msg.MessageEnum.Value; if (!MyMwcEnums.IsValidValue(message.Value)) { message = null; } } MySession.Static.GameOver(message); } break; case MyMissionProgressType.NewObjective: m_followMission.SetObjectives(msg.MissionId); break; default: Debug.Fail("Unknown MyMissionProgressType"); break; } } }
void OnAddExplosion(ref MyEventAddExplosion msg) { if (!MyMwcEnums.IsValidValue(msg.ExplosionFlags)) { Alert("Invalid explosion", msg.SenderEndpoint, msg.EventType); return; } MyEntity entity; if (msg.EntityId.HasValue && MyEntities.TryGetEntityById(msg.EntityId.Value.ToEntityId(), out entity)) { MyScriptWrapper.AddExplosion(entity, (MyExplosionTypeEnum)msg.ExplosionType, msg.Damage, msg.Radius, msg.ForceDebris, msg.CreateDecals, (MyParticleEffectsIDEnum?)msg.ParticleIDOverride); } else if (msg.Position.HasValue) { MyScriptWrapper.AddExplosion(msg.Position.Value, (MyExplosionTypeEnum)msg.ExplosionType, msg.Radius, msg.Damage, msg.ForceDebris, msg.CreateDecals); } else { Alert("Invalid explosion", msg.SenderEndpoint, msg.EventType); } }