public static Queue <ImageEffect> ChangeSprite(UI2DSprite uiSprite, Sprite sprite) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.ChangeSprite(uiSprite, sprite )).Get()); }
/// <summary> /// 初始化系统 /// </summary> private void InitSystem() { root = GameObject.Find("UI Root"); //ps初始化 if (ps == null) { ps = transform.GetComponent <PanelSwitch>(); Debug.Log("PanelSwitch 再获取"); } ps.Init(); //im初始化 if (im == null) { im = transform.GetComponent <ImageManager>(); Debug.Log("ImageManager 再获取"); } //dm初始化 dm = DataManager.GetInstance(); //em初始化 em = EventManager.GetInstance(); //eb初始化 EffectBuilder.Init(im, sm, CharacterManager.GetInstance()); //nf初始化 nodeFactory = NodeFactory.GetInstance(); nodeFactory.Init(dm, root, ps); }
/// <summary> /// 移除背景 /// </summary> public static Queue <ImageEffect> RemoveBackground() { AnimationBuilder builder = new AnimationBuilder(); UI2DSprite ui = EffectBuilder.backgroundSprite; return(builder.BeginWith(EffectBuilder.ChangeSprite(ui, null)).Get()); }
public void should_not_shout_if_hushed() { var player = new PlayerBuilder() .With(p => p.User, new UserBuilder() .With(u => u.Id, "abcde") .BuildAndSave()) .With(p => p.Location, LocationsStatics.STREET_200_MAIN_STREET) .With(p => p.ShoutsRemaining, 1) .BuildAndSave(); var effectSourceHushed = new EffectSourceBuilder() .With(e => e.Id, CharacterPrankProcedures.HUSHED_EFFECT) .BuildAndSave(); var effectHushed = new EffectBuilder() .With(e => e.EffectSource, effectSourceHushed) .BuildAndSave(); player.Effects.Add(effectHushed); var cmd = new Shout { Message = "Hello world!", UserId = player.User.Id }; Assert.That(() => Repository.Execute(cmd), Throws.TypeOf <DomainException>().With.Message.EqualTo("You have been hushed and cannot currently shout.")); }
/// <summary> /// 淡出并移除背景 /// </summary> /// <param name="time">淡出时间</param> public static Queue <ImageEffect> FadeOutBackground(float time) { AnimationBuilder builder = new AnimationBuilder(); UI2DSprite ui = EffectBuilder.backgroundSprite; return(builder.BeginWith(EffectBuilder.FadeOut(ui, time)).Then(EffectBuilder.RemoveSprite(ui)).Get()); }
public void Should_throw_exception_if_player_is_mind_controlled_with_forced_march() { player = new PlayerBuilder() .With(n => n.Id, 9) .With(p => p.User, new UserBuilder().BuildAndSave()) .With(p => p.Money, 1000) .With(p => p.Mobility, PvPStatics.MobilityFull) .With(p => p.Location, LocationsStatics.STREET_270_WEST_9TH_AVE) .With(p => p.LastCombatTimestamp, DateTime.UtcNow.AddHours(-3)) .BuildAndSave(); var effectSourceMarch = new EffectSourceBuilder() .With(e => e.Id, MindControlStatics.MindControl__Movement_DebuffEffectSourceId) .BuildAndSave(); var effectMarch = new EffectBuilder() .With(e => e.EffectSource, effectSourceMarch) .BuildAndSave(); player.Effects.Add(effectMarch); var cmd = new TakeBus { playerId = player.Id, destination = LocationsStatics.STREET_160_SUNNYGLADE_DRIVE }; Assert.That(() => Repository.Execute(cmd), Throws.TypeOf <DomainException>().With.Message .EqualTo("You can't ride the bus while under the Forced March! mind control spell.")); }
public AnimationBuilder BeginWith(ImageEffect e) { animation = new Queue <ImageEffect>(); animation.Enqueue(EffectBuilder.BlockClick(false)); animation.Enqueue(e); return(this); }
/// <summary> /// 从当前位置向某一位置移动 /// </summary> /// <param name="depth">图像层数</param> /// <param name="target">目标位置</param> /// <param name="time">移动时间</param> public static Queue <ImageEffect> MoveCharacterSprite(int depth, Vector3 target, float time) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.MoveByDepth(depth, target, time)) .Get()); }
protected override void SetupEffect(EffectBuilder effectBuilder) { effectBuilder.SetType(_effectType) .SetOwnerToSource() .WithPropertyModifier(_effectModifier.ToPropertyModifier()) .WithRadiusModifier(_effectEnhancerAuraRadiusModifier.Value); }
protected override void SetupEffect(EffectBuilder effectBuilder) { effectBuilder.SetType(EffectType.effect_remote_sensor_boost) .SetSource(ParentRobot) .WithPropertyModifier(_effectSensorBoosterLockingRangeModifier.ToPropertyModifier()) .WithPropertyModifier(_effectSensorBoosterLockingTimeModifier.ToPropertyModifier()); }
/// <summary> /// 淡出并移除立绘 /// </summary> /// <param name="depth">图像层数</param> /// <param name="time">淡出时间</param> public static Queue <ImageEffect> RemoveCharacterSprite(int depth, float time) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.FadeOutByDepth(depth, time)) .Then(EffectBuilder.DeleteSpriteByDepth(depth)) .Get()); }
/// <summary> /// 消除对话框 /// </summary> /// <param name="fadeout">淡出时间</param> public static Queue <ImageEffect> FadeOutDialog(float fadeout) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.FadeOutDialog(fadeout)) .Then(EffectBuilder.SetDialog(false)) .Get()); }
/// <summary> /// 设置并淡入立绘 /// </summary> /// <param name="depth">图像层数</param> /// <param name="sprite">图像名</param> /// <param name="time">淡入时间</param> public static Queue <ImageEffect> SetCharacterSprite(int depth, Sprite sprite, float time) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.SetSpriteByDepth(depth, sprite)) .Then(EffectBuilder.FadeInByDepth(depth, time)) .Get()); }
protected override void SetupEffect(EffectBuilder effectBuilder) { effectBuilder.SetType(EffectType.effect_armor_hardener) .WithPropertyModifier(GetPropertyModifier(AggregateField.effect_resist_kinetic)) .WithPropertyModifier(GetPropertyModifier(AggregateField.effect_resist_chemical)) .WithPropertyModifier(GetPropertyModifier(AggregateField.effect_resist_thermal)) .WithPropertyModifier(GetPropertyModifier(AggregateField.effect_resist_explosive)); }
//public static Queue<ImageEffect> ChangeFront(string character, Sprite sprite) //{ // ImageManager im = GameObject.Find("GameManager").GetComponent<ImageManager>(); // return ChangeSprite(im.GetFront(character), sprite); //} public static Queue <ImageEffect> ChangeSpriteFade(UI2DSprite ui, Sprite sprite, float fadeout, float fadein) { AnimationBuilder builder = new AnimationBuilder(); return(builder.BeginWith(EffectBuilder.FadeOut(ui, fadeout)) .Then(EffectBuilder.ChangeSprite(ui, sprite)) .Then(EffectBuilder.FadeIn(ui, fadein)) .Get()); }
/// <summary> /// 设置并淡入背景 /// </summary> /// <param name="sprite">图像名</param> /// <param name="time">淡入时间</param> public static Queue <ImageEffect> FadeInBackground(Sprite sprite, float time) { AnimationBuilder builder = new AnimationBuilder(); UI2DSprite ui = EffectBuilder.backgroundSprite; return(builder.BeginWith(EffectBuilder.ChangeSprite(ui, sprite)) .Then(EffectBuilder.FadeIn(ui, time)) .Get()); }
private void Awake() { _wait = new WaitForSeconds(waitTime); _takeDamageEffect = new EffectBuilder(this); _takeDamageEffect .AddEffect(new ShakeRectEffect(slider.GetComponent <RectTransform>(), maxShakeRotation, shakeSpeed, OnEffectComplete)) .AddEffect(new FlashColorEffect(sliderFill.color, takeDamageColor, sliderFill, _wait)) .AddEffect(new ScaleRectEffect(slider.GetComponent <RectTransform>(), maxScaleSize, scaleSpeed, _wait)) .OnAllEffectsComplete += OnAllEffectsComplete; }
public void psychotic_players_should_not_lock_permanently() { var botVictim = new PlayerBuilder() .With(p => p.Id, 55) .With(p => p.FirstName, "Victim") .With(p => p.LastName, "McGee") .With(p => p.GameMode, (int)GameModeStatics.GameModes.PvP) .With(p => p.BotId, AIStatics.PsychopathBotId) .With(p => p.Level, 7) .BuildAndSave(); var effectSourcePsychotic = new EffectSourceBuilder() .With(e => e.Id, JokeShopProcedures.PSYCHOTIC_EFFECT) .BuildAndSave(); var effectPsychotic = new EffectBuilder() .With(e => e.EffectSource, effectSourcePsychotic) .With(e => e.Duration, 1) .With(e => e.Owner, botVictim) .BuildAndSave(); botVictim.Effects.Add(effectPsychotic); var cmd = new PlayerBecomesItem { AttackerId = attacker.Id, VictimId = botVictim.Id, NewFormId = formSource.Id }; Assert.That(DomainRegistry.Repository.Execute(cmd), Has.Property("AttackerLog") .EqualTo("<br><b>You fully transformed Victim McGee into a A new Item!</b>!") .And.Property("VictimLog") .EqualTo("<br><b>You have been fully transformed into a A new Item!!</b>!") .And.Property("LocationLog") .EqualTo("<br><b>Victim McGee was completely transformed into a A new Item!</b> here.")); var victimPostTF = DataContext.AsQueryable <Player>().FirstOrDefault(p => p.Id == botVictim.Id); Assert.That(victimPostTF, Is.Not.Null); Assert.That(victimPostTF.Mobility, Is.EqualTo(PvPStatics.MobilityInanimate)); Assert.That(victimPostTF.FormSource.Id, Is.EqualTo(formSource.Id)); Assert.That(victimPostTF.Item.ItemSource.Id, Is.EqualTo(itemSource.Id)); var newItem = DataContext.AsQueryable <Item>().FirstOrDefault(i => i.FormerPlayer != null && i.FormerPlayer.Id == botVictim.Id); Assert.That(newItem, Is.Not.Null); Assert.That(newItem.Owner.Id, Is.EqualTo(attacker.Id)); Assert.That(newItem.PvPEnabled, Is.EqualTo((int)GameModeStatics.GameModes.Protection)); Assert.That(newItem.IsPermanent, Is.False); Assert.That(newItem.Level, Is.EqualTo(botVictim.Level)); Assert.That(newItem.dbLocationName, Is.Empty); Assert.That(newItem.ItemSource.FriendlyName, Is.EqualTo(itemSource.FriendlyName)); Assert.That(newItem.ConsentsToSoulbinding, Is.False); }
/// <summary> /// 删除所有 /// </summary> /// <param name="back">是否包含背景</param> public static Queue <ImageEffect> RemoveAll(bool back) { List <int> charanums = EffectBuilder.GetDepthNum(); Queue <ImageEffect> animation = new Queue <ImageEffect>(); animation.Enqueue(EffectBuilder.BlockClick(false)); foreach (int x in charanums) { //Debug.Log(x); animation.Enqueue(EffectBuilder.DeleteSpriteByDepth(x)); } //if (back) animation.Enqueue(EffectBuilder.RemoveSprite(EffectBuilder.backgroundSprite)); animation.Enqueue(EffectBuilder.BlockClick(true)); return(animation); }
protected override void SetupEffect(EffectBuilder effectBuilder) { var effectProperty = _effectMassivnesSpeedMaxModifier.ToPropertyModifier(); effectProperty.Add(effectBuilder.Owner.Massiveness); if (effectProperty.Value >= 1.0) { effectProperty.ResetToDefaultValue(); } effectBuilder.SetType(EffectType.effect_demobilizer) .SetSource(ParentRobot) .WithPropertyModifier(effectProperty); }
/// <summary> /// 改变原有立绘(淡出淡入) /// </summary> /// <param name="depth">图像层数</param> /// <param name="sprite">图像名</param> /// <param name="fadeout">原图淡出时间</param> /// <param name="fadein">淡入时间</param> public static Queue <ImageEffect> ChangeCharacterSprite(int depth, Sprite sprite, float fadeout, float fadein) { AnimationBuilder builder = new AnimationBuilder(); if (fadeout == 0) { builder.BeginWith(EffectBuilder.ChangeByDepth(depth, sprite)); } else { builder.BeginWith(EffectBuilder.FadeOutByDepth(depth, fadeout)) .Then(EffectBuilder.SetSpriteByDepth(depth, sprite)); } if (fadein != 0) { return(builder.Then(EffectBuilder.FadeInByDepth(depth, fadein)).Get()); } return(builder.Get()); }
public void Next() { if (builder == null) { builder = new EffectBuilder(currentCompilerNode); } FieldData nextFieldData = currentCompilerNode.GetNextFieldData(); if (nextFieldData == null) { if (currentCompilerNode.parent == null) { Last(); return; } else { currentCompilerNode = currentCompilerNode.parent; Next(); return; } } currentFieldData = nextFieldData; // handling for auxiliary bytes if (Array.IndexOf(currentFieldData.attributes, "auxiliary") != -1) { string typeString = currentFieldData.returnType.ToString(); Instruction instruction = EffectData.GetEffectDataByName(typeString).instruction; currentCompilerNode.Add( new EffectBuilderItem(new List <byte> { (byte)instruction }) ); Next(); return; } SetState(); }
/// <summary> /// 淡出所有立绘 /// </summary> /// <param name="time">淡出时间</param> //public static Queue<ImageEffect> FadeOutAllChara(float time) //{ // AnimationBuilder builder = new AnimationBuilder(); // List<int> charanums = EffectBuilder.GetDepthNum(); // Queue<ImageEffect> animation = new Queue<ImageEffect>(); // animation.Enqueue(EffectBuilder.BlockClick(false)); // foreach (int x in charanums) // { // animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time)); // } // return animation; //} ///// <summary> ///// 移除所有立绘 ///// </summary> //public static Queue<ImageEffect> RemoveAllChara() //{ // AnimationBuilder builder = new AnimationBuilder(); // List<int> charanums = EffectBuilder.GetDepthNum(); // Queue<ImageEffect> animation = new Queue<ImageEffect>(); // animation.Enqueue(EffectBuilder.BlockClick(false)); // foreach (int x in charanums) // { // animation.Enqueue(EffectBuilder.DeleteSpriteByDepth(x)); // } // animation.Enqueue(EffectBuilder.BlockClick(true)); // return animation; //} ///// <summary> ///// 淡出所有图片(包括背景) ///// </summary> ///// <param name="time">淡出时间</param> //public static Queue<ImageEffect> FadeOutAllPic(float time) //{ // AnimationBuilder builder = new AnimationBuilder(); // List<int> charanums = EffectBuilder.GetDepthNum(); // Queue<ImageEffect> animation = new Queue<ImageEffect>(); // animation.Enqueue(EffectBuilder.BlockClick(false)); // foreach (int x in charanums) // { // animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time)); // } // animation.Enqueue(EffectBuilder.FadeOut(EffectBuilder.backgroundSprite, time)); // return animation; //} #endregion #region 新增同步特效 所有图片 /// <summary> /// 淡出所有 /// </summary> /// <param name="back">是否包含背景</param> /// <param name="dialog">是否包含对话框</param> /// <param name="time">淡出时间</param> public static Queue <ImageEffect> FadeOutAll(bool back, bool dialog, float time) { List <int> charanums = EffectBuilder.GetDepthNum(); Queue <ImageEffect> animation = new Queue <ImageEffect>(); animation.Enqueue(EffectBuilder.BlockClick(false)); if (dialog) { animation.Enqueue(EffectBuilder.FadeOutDialog(time)); } foreach (int x in charanums) { animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time)); } if (back) { animation.Enqueue(EffectBuilder.FadeOut(EffectBuilder.backgroundSprite, time)); } return(animation); }
public void should_throw_exception_if_player_is_mind_controlled() { var mindControl = new VictimMindControlBuilder() .With(v => v.FormSourceId, MindControlStatics.MindControl__MovementFormSourceId) .With(v => v.TurnsRemaining, 3) .BuildAndSave(); var mindControlList = new List <VictimMindControl> { mindControl }; new PlayerBuilder() .With(p => p.Id, 51) .With(p => p.User, new UserBuilder() .With(u => u.Id, "abcde") .With(u => u.Stats, stats) .BuildAndSave()) .With(p => p.Location, LocationsStatics.STREET_200_MAIN_STREET) .With(p => p.VictimMindControls, mindControlList) .BuildAndSave(); var effectSourceMarch = new EffectSourceBuilder() .With(e => e.Id, MindControlStatics.MindControl__Movement_DebuffEffectSourceId) .BuildAndSave(); var effectMarch = new EffectBuilder() .With(e => e.EffectSource, effectSourceMarch) .BuildAndSave(); player.Effects.Add(effectMarch); var cmd = new Move { PlayerId = 51, destination = destination }; Assert.That(() => Repository.Execute(cmd), Throws.TypeOf <DomainException>().With.Message.EqualTo( "You try to move but discover you cannot! Some other mage has partial control of your mind, disabling your ability to move on your own!")); }
protected virtual void OnApplyEffect(EffectBuilder builder) { }
public void SetEffectBuilder(EffectResourceBuilder source) { if (this.mEffectBuilder != null) { this.mEffectBuilder.RemoveIndex(this); } this.mEffectBuilder = new EffectBuilder(this.EffectType, this.ComponentIndex); this.mEffectBuilder.Effect = source.GetEffect(this.EffectType, this.ComponentIndex); this.mEffectBuilder.AddIndex(this); }
public void Clear() { builder = null; currentCompilerNode = null; currentFieldData = null; }
protected override void SetupEffect(EffectBuilder effectBuilder) { effectBuilder.SetType(EffectType.effect_target_painting) .SetSource(ParentRobot) .WithPropertyModifier(_effectStealthStrengthModifier.ToPropertyModifier()); }
public void SetEffectBuilder(EffectBuilder builder) { if (builder == null) throw new ArgumentNullException("builder"); if (this.mEffectBuilder != null) { this.mEffectBuilder.RemoveIndex(this); } this.mEffectBuilder = builder; this.mEffectBuilder.AddIndex(this); this.ComponentType = (byte)this.mEffectBuilder.EffectType; this.ComponentIndex = this.mEffectBuilder.EffectIndex; }
protected override void SetupEffect(EffectBuilder effectBuilder) { effectBuilder.SetType(EffectType.effect_sensor_supress).SetSource(ParentRobot) .WithPropertyModifier(_effectSensorDampenerLockingRangeModifier.ToPropertyModifier()) .WithPropertyModifier(_effectSensorDampenerLockingTimeModifier.ToPropertyModifier()); }
protected override void OnApplyEffect(EffectBuilder builder) { builder.WithRadius(EmitRadius); base.OnApplyEffect(builder); }
public Queue <ImageEffect> Get() { animation.Enqueue(EffectBuilder.BlockClick(true)); return(animation); }