コード例 #1
0
        private ParamData.AtkParam GetAtkParamFromEventBox(TaeEditAnimEventBox evBox)
        {
            ParamData.AtkParam atkParam = null;
            if (evBox.MyEvent.TypeName == "InvokeAttackBehavior" || evBox.MyEvent.TypeName == "InvokeThrowDamageBehavior")
            {
                if (!MODEL.IS_PLAYER)
                {
                    atkParam = ParamManager.GetNpcBasicAtkParam(MODEL.NpcParam, (int)evBox.MyEvent.Parameters["BehaviorSubID"]);
                }
                else
                {
                    bool isLeftHand = MODEL.DummyPolyMan.IsViewingLeftHandHit;

                    if (evBox.MyEvent.TypeName == "InvokeAttackBehavior")
                    {
                        var atkType = (int)evBox.MyEvent.Parameters["AttackType"];

                        if (atkType == 64 /*Parry*/)
                        {
                            isLeftHand = true;
                        }
                        else if (atkType == 2 /*Forward+R1*/ || atkType == 62 /*Plunging attack*/)
                        {
                            isLeftHand = false;
                        }
                    }


                    atkParam = ParamManager.GetPlayerBasicAtkParam(
                        isLeftHand ? MODEL.ChrAsm.LeftWeapon : MODEL.ChrAsm.RightWeapon,
                        (int)evBox.MyEvent.Parameters["BehaviorSubID"],
                        isLeftHand);
                }
            }
            else if (evBox.MyEvent.TypeName == "InvokeCommonBehavior")
            {
                atkParam = ParamManager.GetPlayerCommonAttack((int)evBox.MyEvent.Parameters["BehaviorParamID"]);
            }
            else if (evBox.MyEvent.TypeName == "InvokePCBehavior")
            {
                if (MODEL.IS_PLAYER)
                {
                    int condition = (int)evBox.MyEvent.Parameters["Condition"];
                    if (condition == 4)
                    {
                        atkParam = ParamManager.GetPlayerCommonAttack((int)evBox.MyEvent.Parameters["BehaviorSubID"]);
                    }
                    else if (condition == 8)
                    {
                        atkParam = ParamManager.GetPlayerBasicAtkParam(
                            MODEL.DummyPolyMan.IsViewingLeftHandHit ?
                            MODEL.ChrAsm.LeftWeapon : MODEL.ChrAsm.RightWeapon,
                            (int)evBox.MyEvent.Parameters["BehaviorSubID"],
                            isLeftHand: MODEL.DummyPolyMan.IsViewingLeftHandHit);
                    }
                    else if (condition == 2)
                    {
                        atkParam = ParamManager.GetPlayerBasicAtkParam(
                            MODEL.ChrAsm.LeftWeapon,
                            (int)evBox.MyEvent.Parameters["BehaviorSubID"], isLeftHand: true);
                    }
                    else
                    {
                        Console.WriteLine($"Unknown InvokePCBehavior condition: {condition}");
                    }
                }
            }

            return(atkParam);
        }