internal static void SetValue(WeaponComponent comp, string setting, int v, long playerId) { var o = comp.Data.Repo.Base.Set.Overrides; var enabled = v > 0; var clearTargets = false; var resetState = false; switch (setting) { case "MaxSize": o.MaxSize = v; break; case "MinSize": o.MinSize = v; break; case "SubSystems": o.SubSystem = (WeaponDefinition.TargetingDef.BlockTypes)v; break; case "MovementModes": o.MoveMode = (GroupOverrides.MoveModes)v; clearTargets = true; break; case "ControlModes": o.Control = (GroupOverrides.ControlModes)v; clearTargets = true; resetState = true; break; case "FocusSubSystem": o.FocusSubSystem = enabled; break; case "FocusTargets": o.FocusTargets = enabled; clearTargets = true; break; case "Unowned": o.Unowned = enabled; break; case "Friendly": o.Friendly = enabled; clearTargets = true; break; case "Meteors": o.Meteors = enabled; break; case "Grids": o.Grids = enabled; break; case "Biologicals": o.Biologicals = enabled; break; case "Projectiles": o.Projectiles = enabled; clearTargets = true; break; case "Neutrals": o.Neutrals = enabled; clearTargets = true; break; case "Debug": o.Debug = enabled; break; case "Repel": o.Repel = enabled; clearTargets = true; break; case "CameraChannel": o.CameraChannel = v; break; } ResetCompState(comp, playerId, clearTargets, resetState); if (comp.Session.MpActive) { comp.Session.SendCompBaseData(comp); } }
internal void SetValue(WeaponComponent comp, string setting, int value) { var o = comp.Set.Value.Overrides; switch (setting) { case "Active": o.Activate = value > 0; if (!o.Activate) { ClearTargets(comp); } break; case "SubSystems": o.SubSystem = (TargetingDef.BlockTypes)value; break; case "FocusSubSystem": o.FocusSubSystem = value > 0; break; case "FocusTargets": o.FocusTargets = value > 0; break; case "ManualControl": o.ManualControl = value > 0; break; case "TargetPainter": o.TargetPainter = value > 0; break; case "Unowned": o.Unowned = value > 0; break; case "Friendly": o.Friendly = value > 0; break; case "Meteors": o.Meteors = value > 0; break; case "Biologicals": o.Biologicals = value > 0; break; case "Projectiles": o.Projectiles = value > 0; break; case "Neutrals": o.Neutrals = value > 0; break; } if (o.ManualControl || o.TargetPainter) { comp.State.Value.CurrentPlayerControl.PlayerId = comp.Session.PlayerId; comp.State.Value.CurrentPlayerControl.ControlType = ControlType.Ui; if (o.ManualControl) { o.TargetPainter = false; } else { o.ManualControl = false; } comp.State.Value.ClickShoot = false; comp.State.Value.ShootOn = false; for (int i = 0; i < comp.Platform.Weapons.Length; i++) { comp.Platform.Weapons[i].State.ManualShoot = Platform.Weapon.TerminalActionState.ShootOff; } } else { comp.State.Value.CurrentPlayerControl.PlayerId = -1; comp.State.Value.CurrentPlayerControl.ControlType = ControlType.None; } if (comp.Session.MpActive) { comp.Session.SendControlingPlayer(comp); comp.Session.SendOverRidesUpdate(comp, o); } }