public void Apply(ScriptingContext ctx) { var size = Size.Def.Calc(ctx); VoltBody[] bodies = QuerySpaceInCircle(size, ctx); if (bodies == null) { return; } foreach (var body in bodies) { if (body.UserData is EntityId eid) { if (eid == ctx.Host) { continue; } var ghost = ctx.ProcessingEntity.CurrentServer.GetGhost(eid); if (ghost is IImpactedEntity impe) { impe.RunImpact(ctx, Impact.Def); } } } }
public void Apply(ScriptingContext ctx) { foreach (var impact in Impacts) { impact.Def.Apply(ctx); } }
public object Deserialize(NetDataReader stream) { var objToSerialize = new ScriptingContext(); { var has = stream.GetBool(); objToSerialize.TargetPoint = !has ? default : (Vec2)SyncTypesMap.FastSerializerGetter <Vec2> .Serializer.Deserialize(stream); } { var has = stream.GetBool(); objToSerialize.Parent = !has ? default : (ScriptingContext)SyncTypesMap.FastSerializerGetter <ScriptingContext> .Serializer.Deserialize(stream); } { var has = stream.GetBool(); objToSerialize.Host = !has ? default : (EntityId)SyncTypesMap.FastSerializerGetter <EntityId> .Serializer.Deserialize(stream); } { var has = stream.GetBool(); objToSerialize.Target = !has ? default : (EntityId)SyncTypesMap.FastSerializerGetter <EntityId> .Serializer.Deserialize(stream); } return(objToSerialize); }
public bool Check(ScriptingContext ctx) { if (ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Target) is IInteractive inter) { return(inter.InteractiveDef == Type.Def); } return(false); }
public void Apply(ScriptingContext ctx) { var target = ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Target); if (target != null && target is IImpactedEntity ie) { ie.RunImpact(ctx, Do.Def); } }
public void Apply(ScriptingContext ctx) { if (ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Host) is IQuester quester) { quester.Quests.Add(new QuestInstance() { QuestDef = Quest.Def }); quester.Quests = quester.Quests; } }
public bool Check(ScriptingContext ctx) { var target = ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Target); if (target == null) { return(false); } return(Predicate.Def.Check(new ScriptingContext() { ProcessingEntity = ctx.ProcessingEntity, Parent = ctx, Host = ctx.Target, Target = ctx.Target })); }
public void Apply(ScriptingContext ctx) { if (ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Host) is IQuester quester) { var quest = quester.Quests.SingleOrDefault(x => x.QuestDef == Quest.Def); if (quest == null) { return; } quest.QuestDef.OnComplete.Def?.Apply(ctx); quester.Quests.Remove(quest); quester.Quests = quester.Quests; } }
public void Apply(ScriptingContext ctx) { var point = Where.Def.Select(ctx); ctx.ProcessingEntity.CurrentServer.Create(EntityObjectsMap.GetTypeFromDef(Object.Def), (ent) => { if (ent is IPositionedEntity) { ((IPositionedEntity)ent).Position = point; } ((IEntityObject)ent).Def = Object.Def; if (Buffed != null) { ((IHasSpells)ent).SpellsEngine.DynamicBuffsOnStart = new List <SpellDef>(new[] { Buffed.Def }); } }); }
public static VoltBody[] QuerySpaceInCircle(float size, ScriptingContext ctx) { var tgt = ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Host); var world = (VoltWorld)ctx.ProcessingEntity.CurrentServer.CustomData; VoltBody[] bodies = Array.Empty <VoltBody>(); lock (world) { var pos = ctx.TargetPoint.ToVolt(); var buffer = world.QueryCircle(pos, size); if (buffer.Count != 0) { bodies = new VoltBody[buffer.Count]; } for (int i = 0; i < buffer.Count; i++) { bodies[i] = buffer[i]; } } return(bodies); }
public bool Check(ScriptingContext ctx) { var tgt = ctx.ProcessingEntity.CurrentServer.GetGhost(ctx.Host); var world = (VoltWorld)ctx.ProcessingEntity.CurrentServer.CustomData; VoltBody[] bodies = null; lock (world) { var buffer = world.QueryCircle(((IPositionedEntity)tgt).Position.ToVolt(), Size.Def.Calc(ctx)); if (buffer.Count != 0) { bodies = new VoltBody[buffer.Count]; } for (int i = 0; i < buffer.Count; i++) { bodies[i] = buffer[i]; } } foreach (var body in bodies) { if (body.UserData is EntityId eid) { if (eid == ctx.Host) { continue; } if (!Predicate.Def.Check(new ScriptingContext() { Parent = ctx, ProcessingEntity = ctx.ProcessingEntity, Host = eid })) { return(false); } } } return(true); }
public void Apply(ScriptingContext ctx) { ctx.ProcessingEntity.CurrentServer.Destroy(ctx.Host); }
public void Apply(ScriptingContext ctx) { throw new NotImplementedException(); }