public void ChangeValue(MegaloScriptModel model, MegaloScriptVariableReferenceData playerData, MegaloScriptVariableReferenceData playerAddOrRemoveData) { FilterType = MegaloScriptPlayerFilterType.PlayerMask; Player = playerData; PlayerAddOrRemove = playerAddOrRemoveData; }
public void SetAsDefault() { Player = MegaloScriptVariableReferenceData.Player; PlayerAddOrRemove = MegaloScriptVariableReferenceData.Custom; FilterType = MegaloScriptPlayerFilterType.NoOne; }
public void SetAsEveryone() { Player = MegaloScriptVariableReferenceData.Player; PlayerAddOrRemove = MegaloScriptVariableReferenceData.Custom; FilterType = MegaloScriptPlayerFilterType.Everyone; }
public void SetAsEnemiesOfTeam() { Player = MegaloScriptVariableReferenceData.Player; PlayerAddOrRemove = MegaloScriptVariableReferenceData.Custom; FilterType = MegaloScriptPlayerFilterType.EnemiesOfTeam; }
public void SetAsOff() { Numeric1 = MegaloScriptVariableReferenceData.Custom; Numeric2 = MegaloScriptVariableReferenceData.Custom; Timer = MegaloScriptVariableReferenceData.Timer; Type = MegaloScriptWidgetMeterType.Off; }
public void ChangeValue(MegaloScriptModel model, MegaloScriptPlayerFilterType filterType) { Contract.Requires(filterType != MegaloScriptPlayerFilterType.PlayerMask, "Wrong ChangeValue overload"); FilterType = filterType; Player = MegaloScriptVariableReferenceData.Player; PlayerAddOrRemove = MegaloScriptVariableReferenceData.Custom; }
public void SetAsNone() { mRadius = MegaloScriptVariableReferenceData.Custom; mLength = MegaloScriptVariableReferenceData.Custom; mTop = MegaloScriptVariableReferenceData.Custom; mBottom = MegaloScriptVariableReferenceData.Custom; ShapeType = MegaloScriptShapeType.None; }
public void SetAsPlayerMask(MegaloScriptVariableReferenceData player, MegaloScriptVariableReferenceData addOrRemove) { Contract.Requires(player.ReferenceKind == MegaloScriptVariableReferenceType.Player); Contract.Requires(addOrRemove.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Player = player; PlayerAddOrRemove = addOrRemove; FilterType = MegaloScriptPlayerFilterType.PlayerMask; }
public void SetAsTimer(MegaloScriptVariableReferenceData timer) { Contract.Requires(timer.ReferenceKind == MegaloScriptVariableReferenceType.Timer); Numeric1 = MegaloScriptVariableReferenceData.Custom; Numeric2 = MegaloScriptVariableReferenceData.Custom; Timer = timer; Type = MegaloScriptWidgetMeterType.Timer; }
public void SetAsNumeric(MegaloScriptVariableReferenceData value, MegaloScriptVariableReferenceData maxValue) { Contract.Requires(value.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(maxValue.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Numeric1 = value; Numeric2 = maxValue; Timer = MegaloScriptVariableReferenceData.Timer; Type = MegaloScriptWidgetMeterType.Numeric; }
public void SetAsSphere(MegaloScriptVariableReferenceData radius) { Contract.Requires(radius.ReferenceKind == MegaloScriptVariableReferenceType.Custom); mRadius = radius; mLength = MegaloScriptVariableReferenceData.Custom; mTop = MegaloScriptVariableReferenceData.Custom; mBottom = MegaloScriptVariableReferenceData.Custom; NotifyPropertyChanged(kRadiusChanged); ShapeType = MegaloScriptShapeType.Sphere; }
public void SetFromVarReference(MegaloScriptVariableReferenceData value) { Contract.Requires(value.ReferenceKind == MegaloScriptVariableReferenceType.Team || value.ReferenceKind == MegaloScriptVariableReferenceType.Player); switch (value.ReferenceKind) { case MegaloScriptVariableReferenceType.Team: TargetType = MegaloScriptTargetType.Team; break; case MegaloScriptVariableReferenceType.Player: TargetType = MegaloScriptTargetType.Player; break; } Value = value; }
public override void Serialize(MegaloScriptModel model, IO.BitStream s) { s.Stream(ref mTargetType, 2, MegaloScriptTargetTypeBitStreamer.Instance); switch (TargetType) { case MegaloScriptTargetType.Team: mValue.SerializeTeam(model, s); break; case MegaloScriptTargetType.Player: mValue.SerializePlayer(model, s); break; case MegaloScriptTargetType.None: mValue = MegaloScriptVariableReferenceData.Null; break; } }
protected override void SerializeValue <TDoc, TCursor>(MegaloScriptModel model, IO.TagElementStream <TDoc, TCursor, string> s) { s.StreamAttributeEnum("targetType", ref mTargetType); switch (TargetType) { case MegaloScriptTargetType.Team: mValue.SerializeTeam(model, s); break; case MegaloScriptTargetType.Player: mValue.SerializePlayer(model, s); break; case MegaloScriptTargetType.None: mValue = MegaloScriptVariableReferenceData.Null; break; } }
/// <summary></summary> /// <param name="refKind">The kind of variable we're this reference</param> /// <param name="refMemberName">The variable's reference type</param> /// <param name="dataValue">Actual 'data' value for the variable reference</param> /// <param name="dataTypeName">Optional type info for <paramref name="dataValue"/></param> /// <returns></returns> public MegaloScriptVariableReferenceData NewVarReference(MegaloScriptVariableReferenceType refKind, string refMemberName, int dataValue = TypeExtensions.kNone, string dataTypeName = null) { Contract.Requires(!string.IsNullOrEmpty(refMemberName)); MegaloScriptVariableReferenceData result; Proto.MegaloScriptProtoVariableReferenceMember member; MegaloScriptVariableReferenceData.Initialize(this, out result, refKind, out member, refMemberName, dataTypeName); result.Data = dataValue; return(result); }
public void SetAsCylinder(MegaloScriptVariableReferenceData radius, MegaloScriptVariableReferenceData top, MegaloScriptVariableReferenceData bottom) { Contract.Requires(radius.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(top.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(bottom.ReferenceKind == MegaloScriptVariableReferenceType.Custom); mRadius = radius; mLength = MegaloScriptVariableReferenceData.Custom; mTop = top; mBottom = bottom; NotifyPropertyChanged(kRadiusChanged); NotifyPropertyChanged(kTopChanged); NotifyPropertyChanged(kBottomChanged); ShapeType = MegaloScriptShapeType.Cylinder; }
/// <summary></summary> /// <param name="refKind">The kind of variable we're this reference</param> /// <param name="refMemberName">The variable's reference type</param> /// <param name="indexName">Actual 'data' value for the variable reference</param> /// <param name="dataTypeName">Optional type info for <paramref name="indexName"/></param> /// <returns></returns> public MegaloScriptVariableReferenceData NewVarReferenceWithIndexData(MegaloScriptVariableReferenceType refKind, string refMemberName, string indexName, string dataTypeName = null) { Contract.Requires(!string.IsNullOrEmpty(refMemberName)); Contract.Requires(indexName != null); MegaloScriptVariableReferenceData result; Proto.MegaloScriptProtoVariableReferenceMember member; MegaloScriptVariableReferenceData.Initialize(this, out result, refKind, out member, refMemberName, dataTypeName); Contract.Assert(member.HasDataValue, "Member has no data field, let alone index data"); result.Data = GetTargetIndexFromName(member.ValueType.IndexTarget, indexName); return(result); }
public void SetAsBox(MegaloScriptVariableReferenceData width, MegaloScriptVariableReferenceData length, MegaloScriptVariableReferenceData top, MegaloScriptVariableReferenceData bottom) { Contract.Requires(width.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(length.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(top.ReferenceKind == MegaloScriptVariableReferenceType.Custom); Contract.Requires(bottom.ReferenceKind == MegaloScriptVariableReferenceType.Custom); mRadius = width; mLength = length; mTop = top; mBottom = bottom; NotifyPropertyChanged(kRadiusChanged); NotifyPropertyChanged(kLengthChanged); NotifyPropertyChanged(kTopChanged); NotifyPropertyChanged(kBottomChanged); ShapeType = MegaloScriptShapeType.Box; }
/// <summary></summary> /// <param name="refKind">The kind of variable we're this reference</param> /// <param name="refMemberName">The variable's reference type</param> /// <param name="enumMemberName">Actual 'data' value for the variable reference</param> /// <param name="dataTypeName">Optional type info for <paramref name="enumMemberName"/></param> /// <returns></returns> public MegaloScriptVariableReferenceData NewVarReferenceWithEnumData(MegaloScriptVariableReferenceType refKind, string refMemberName, string enumMemberName, string dataTypeName = null) { Contract.Requires(!string.IsNullOrEmpty(refMemberName)); Contract.Requires(!string.IsNullOrEmpty(enumMemberName)); MegaloScriptVariableReferenceData result; Proto.MegaloScriptProtoVariableReferenceMember member; MegaloScriptVariableReferenceData.Initialize(this, out result, refKind, out member, refMemberName, dataTypeName); Contract.Assert(member.HasDataValue, "Member has no data field, let alone enum data"); var id_resolving_ctxt = new Proto.MegaloScriptEnum.EnumNameResolvingContext(Database, member.EnumValueType); result.Data = Proto.MegaloScriptEnum.EnumNameResolvingContext.IdResolver(id_resolving_ctxt, enumMemberName); return(result); }
public void SetAsTeam(MegaloScriptVariableReferenceData team) { Contract.Requires(team.ReferenceKind == MegaloScriptVariableReferenceType.Team); SetFromVarReference(team); }
public void SetAsPlayer(MegaloScriptVariableReferenceData player) { Contract.Requires(player.ReferenceKind == MegaloScriptVariableReferenceType.Player); SetFromVarReference(player); }
public void Nullify() { Type = MegaloScriptTokenAbstractType.None; Value = MegaloScriptVariableReferenceData.Null; }
public virtual void CopyFrom(MegaloScriptToken other) { Type = other.mType; Value = other.Value; }