コード例 #1
0
        public void Untransform(PlayerTransformation transformation)
        {
            if (!ActiveTransformations.Contains(transformation.Definition))
            {
                return;
            }

            Untransform(transformation.Definition);
        }
コード例 #2
0
        public void ClearAllTransformations()
        {
            for (int i = 0; i < ActiveTransformations.Count; i++)
            {
                RemoveTransformation(ActiveTransformations[i]);
            }

            ActiveTransformations.Clear();
        }
コード例 #3
0
        public bool IsTransformed(TransformationDefinition definition)
        {
            for (int i = 0; i < ActiveTransformations.Count; i++)
            {
                if (ActiveTransformations.Contains(definition))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #4
0
        public void Untransform(TransformationDefinition definition)
        {
            for (int i = ActiveTransformations.Count - 1; i >= 0; i--)
            {
                TransformationDefinition transformation = ActiveTransformations[i];

                if (transformation == definition)
                {
                    ActiveTransformations.Remove(transformation);
                    player.ClearBuff(mod.GetBuff(definition.BuffType.Name).Type);
                }
            }
        }
コード例 #5
0
        public void Transform(TransformationDefinition definition)
        {
            for (int i = 0; i < ActiveTransformations.Count; i++)
            {
                if (ActiveTransformations[i] == definition)
                {
                    return;
                }
            }

            ActiveTransformations.Add(definition);
            player.AddBuff(mod.GetBuff(definition.BuffType.Name).Type, definition.Duration);

            if (player.whoAmI == Main.myPlayer)
            {
                new PlayerTransformedPacket(definition).Send();
            }
        }
コード例 #6
0
        public void Transform(TransformationDefinition definition)
        {
            for (int i = 0; i < ActiveTransformations.Count; i++)
            {
                if (ActiveTransformations[i] == definition)
                {
                    return;
                }
            }

            ActiveTransformations.Add(definition);
            player.AddBuff(mod.GetBuff(definition.BuffType.Name).Type, definition.Duration);

            if (Main.netMode == NetmodeID.MultiplayerClient && player.whoAmI == Main.myPlayer)
            {
                NetworkPacketManager.Instance.PlayerTransformedPacket.SendPacketToServer(player.whoAmI, (byte)player.whoAmI, definition.UnlocalizedName);
            }
        }
コード例 #7
0
        public void Untransform(TransformationDefinition definition)
        {
            for (int i = ActiveTransformations.Count - 1; i >= 0; i--)
            {
                TransformationDefinition transformation = ActiveTransformations[i];

                if (transformation == definition)
                {
                    ActiveTransformations.Remove(transformation);

                    if (player.whoAmI == Main.myPlayer)
                    {
                        new PlayerUntransformedPacket(transformation).Send();
                    }

                    player.ClearBuff(mod.GetBuff(definition.BuffType.Name).Type);
                }
            }
        }
コード例 #8
0
        public void AddTransformation(TransformationDefinition transformation, int duration)
        {
            player.AddBuff(transformation.GetBuffId(), duration, false);
            ActiveTransformations.Add(transformation);

            transformation.OnPlayerTransformed(this);

            if (!string.IsNullOrWhiteSpace(transformation.Text))
            {
                CombatText.NewText(player.Hitbox, transformation.TextColor, transformation.Text, false, false);
            }

            if (!Main.dedServ && Main.netMode == NetmodeID.MultiplayerClient && player.whoAmI == Main.myPlayer)
            {
                NetworkHelper.formSync.SendFormChanges(256, player.whoAmI, player.whoAmI, transformation.UnlocalizedName, duration);
            }

            isTransformationAnimationPlaying = true;
        }
コード例 #9
0
 public bool IsTransformedInto(TransformationDefinition transformation) => ActiveTransformations.Contains(transformation);