コード例 #1
0
ファイル: Face.cs プロジェクト: github-esme/MsCharacter
 public void Draw(Expression.Id exp, short frame, DrawArgument args)
 {
     if (_expressions.ContainsKey(exp) && _expressions[exp].ContainsKey(frame))
     {
         _expressions[exp][frame].Tex.Draw(args);
     }
 }
コード例 #2
0
ファイル: Face.cs プロジェクト: github-esme/MsCharacter
 public short GetDelay(Expression.Id exp, short frame)
 {
     if (_expressions.ContainsKey(exp) && _expressions[exp].ContainsKey(frame))
     {
         return(_expressions[exp][frame].delay);
     }
     return(0);
 }
コード例 #3
0
ファイル: Face.cs プロジェクト: github-esme/MsCharacter
 public short NextFrame(Expression.Id exp, short frame)
 {
     if (_expressions.ContainsKey(exp) && _expressions[exp].ContainsKey((short)(frame + 1)))
     {
         return((short)(frame + 1));
     }
     return(0);
 }
コード例 #4
0
ファイル: CharLook.cs プロジェクト: github-esme/MsCharacter
 public void SetExpression(Expression.Id newExpression)
 {
     if (_expression.Get() == newExpression)
     {
         return;
     }
     _expression.Set(newExpression);
     _expFrame.Set(0);
     _expELapSed = 0;
 }
コード例 #5
0
ファイル: CharLook.cs プロジェクト: github-esme/MsCharacter
 public void Draw(Vector2 position, bool flipped, Stance.Id inStance, Expression.Id inExpression)
 {
     inStance = _equips.AdjustStance(inStance);
     Draw(inStance, inExpression, 0, 0, new DrawArgument(position, flipped));
 }
コード例 #6
0
ファイル: CharLook.cs プロジェクト: github-esme/MsCharacter
        private void Draw(Stance.Id inStance, Expression.Id inExpression, short inFrame, short inExpFrame,
                          DrawArgument args)
        {
            if (Stance.IsClimbing(inStance)) // 判断是否为 爬绳
            {
                Body.Draw(inStance, Body.Layer.Body, inFrame, args);
                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.Glove, inFrame, args);
                _equips.Draw(EquipSlot.Id.Shoes, inStance, Clothing.Layer.Shoes, inFrame, args);
                _equips.Draw(EquipSlot.Id.Bottom, inStance, Clothing.Layer.Pants, inFrame, args);
                _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.Top, inFrame, args);
                _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.Mail, inFrame, args);
                _equips.Draw(EquipSlot.Id.Cape, inStance, Clothing.Layer.Cape, inFrame, args);
                Body.Draw(inStance, Body.Layer.Head, inFrame, args);
                _equips.Draw(EquipSlot.Id.EarAcc, inStance, Clothing.Layer.Earrings, inFrame, args);
                switch (_equips.GetCapType())
                {
                case CharEquips.CapType.None:
                    Hair.Draw(inStance, Hair.Layer.Back, inFrame, args);
                    break;

                case CharEquips.CapType.Headband:
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    Hair.Draw(inStance, Hair.Layer.Back, inFrame, args);
                    break;

                case CharEquips.CapType.HalfCover:
                    Hair.Draw(inStance, Hair.Layer.BelowCap, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    break;

                case CharEquips.CapType.FullCover:
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    break;
                }

                _equips.Draw(EquipSlot.Id.Shield, inStance, Clothing.Layer.BackShield, inFrame, args);
                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.BackWeapon, inFrame, args);
            }
            else
            {
                var faceShift = _drawInfo.GetFacePosition(inStance, inFrame);
                var faceArgs  =
                    args + (faceShift - (args.XScale.Equals(-1f) ? new Vector2(faceShift.X * 2, 0) : new Vector2()));
                Hair.Draw(inStance, Hair.Layer.BelowBody, inFrame, args);
                _equips.Draw(EquipSlot.Id.Cape, inStance, Clothing.Layer.Cape, inFrame, args);
                _equips.Draw(EquipSlot.Id.Shield, inStance, Clothing.Layer.ShieldBelowBody, inFrame, args);
                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.WeaponBelowBody, inFrame, args);
                _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.CapBelowBody, inFrame, args);
                Body.Draw(inStance, Body.Layer.Body, inFrame, args);
                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.WristOverBody, inFrame, args);
                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.GloveOverBody, inFrame, args);
                _equips.Draw(EquipSlot.Id.Shoes, inStance, Clothing.Layer.Shoes, inFrame, args);
                Body.Draw(inStance, Body.Layer.ArmBelowHead, inFrame, args);

                if (_equips.HasOverAll)
                {
                    _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.Mail, inFrame, args);
                }
                else
                {
                    _equips.Draw(EquipSlot.Id.Bottom, inStance, Clothing.Layer.Pants, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.Top, inFrame, args);
                }

                Body.Draw(inStance, Body.Layer.ArmBelowHeadOverMail, inFrame, args);
                Hair.Draw(inStance, Hair.Layer.Default, inFrame, args);
                _equips.Draw(EquipSlot.Id.Shield, inStance, Clothing.Layer.ShieldOverHair, inFrame, args);
                _equips.Draw(EquipSlot.Id.EarAcc, inStance, Clothing.Layer.Earrings, inFrame, args);
                Body.Draw(inStance, Body.Layer.Head, inFrame, args);
                Hair.Draw(inStance, Hair.Layer.Shade, inFrame, args);
                Face.Draw(inExpression, inExpFrame, faceArgs);
                _equips.Draw(EquipSlot.Id.Face, inStance, Clothing.Layer.FaceAcc, 0, faceArgs);
                _equips.Draw(EquipSlot.Id.EyeAcc, inStance, Clothing.Layer.EyeAcc, inFrame, args);
                _equips.Draw(EquipSlot.Id.Shield, inStance, Clothing.Layer.Shield, inFrame, args);
                switch (_equips.GetCapType())
                {
                case CharEquips.CapType.None:
                    Hair.Draw(inStance, Hair.Layer.OverHead, inFrame, args);
                    break;

                case CharEquips.CapType.Headband:
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    Hair.Draw(inStance, Hair.Layer.Default, inFrame, args);
                    Hair.Draw(inStance, Hair.Layer.OverHead, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.CapOverHair, inFrame, args);
                    break;

                case CharEquips.CapType.HalfCover:
                    Hair.Draw(inStance, Hair.Layer.Default, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    break;

                case CharEquips.CapType.FullCover:
                    _equips.Draw(EquipSlot.Id.Hat, inStance, Clothing.Layer.Cap, inFrame, args);
                    break;
                }

                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.WeaponBelowArm, inFrame, args);

                if (inStance == Stance.Id.StabO1)
                {
                    Console.WriteLine();
                }
                if (IsTwoHanded(inStance))
                {
                    _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.MailArm, inFrame, args);
                    Body.Draw(inStance, Body.Layer.Arm, inFrame, args);
                    Body.Draw(inStance, Body.Layer.ArmOverHair, inFrame, args);
                    Body.Draw(inStance, Body.Layer.ArmOverHairBelowWeapon, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.Weapon, inFrame, args);
                }
                else
                {
                    _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.Weapon, inFrame, args);
                    Body.Draw(inStance, Body.Layer.Arm, inFrame, args);
                    Body.Draw(inStance, Body.Layer.ArmOverHair, inFrame, args);
                    Body.Draw(inStance, Body.Layer.ArmOverHairBelowWeapon, inFrame, args);
                    _equips.Draw(EquipSlot.Id.Top, inStance, Clothing.Layer.MailArm, inFrame, args);
                }

                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.Wrist, inFrame, args);
                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.Glove, inFrame, args);
                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.WeaponOverGlove, inFrame, args);

                Body.Draw(inStance, Body.Layer.HandBelowWeapon, inFrame, args);

                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.WeaponOverHand, inFrame, args);
                _equips.Draw(EquipSlot.Id.Weapon, inStance, Clothing.Layer.WeaponOverBody, inFrame, args);
                Body.Draw(inStance, Body.Layer.HandOverHair, inFrame, args);
                Body.Draw(inStance, Body.Layer.HandOverWeapon, inFrame, args);

                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.WristOverHair, inFrame, args);
                _equips.Draw(EquipSlot.Id.Gloves, inStance, Clothing.Layer.GloveOverHair, inFrame, args);
            }
        }