Ejemplo n.º 1
0
        /// <summary>
        /// Draws all of the fields for the selected ability.
        /// </summary>
        private void DrawAbility(RiderCombatAbility ability)
        {
            if (ability == null)
            {
                return;
            }

            SerializedObject abilitySerializedObject;

            abilitySerializedObject = new SerializedObject(ability);
            abilitySerializedObject.Update();

            EditorGUI.BeginChangeCheck();

            var property = abilitySerializedObject.GetIterator();

            property.NextVisible(true);
            property.NextVisible(true);
            do
            {
                EditorGUILayout.PropertyField(property, true);
            } while (property.NextVisible(false));

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(ability, "Ability Changed");
                abilitySerializedObject.ApplyModifiedProperties();
                if (ability != null)
                {
                    EditorUtility.SetDirty(ability);
                    // MalbersEditor.SetObjectDirty(ability);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>Initialize all variables for the Rider</summary>
        protected virtual void InitRiderCombat()
        {
            _t    = transform;                                             //Get this Transform
            Anim  = GetComponent <Animator>();                             //Get the Animator
            Rider = GetComponent <MRider>();


            DefaultAnimUpdateMode = Anim.updateMode;
            GetHashIDs();

            Head  = Anim.GetBoneTransform(HumanBodyBones.Head);                    //Get the Rider Head transform
            Chest = Anim.GetBoneTransform(HumanBodyBones.Chest);                   //Get the Rider Head transform

            RightHand = Anim.GetBoneTransform(HumanBodyBones.RightHand);           //Get the Rider Right Hand transform
            LeftHand  = Anim.GetBoneTransform(HumanBodyBones.LeftHand);            //Get the Rider Left  Hand transform

            RightShoulder = Anim.GetBoneTransform(HumanBodyBones.RightUpperArm);   //Get the Rider Right Shoulder transform
            LeftShoulder  = Anim.GetBoneTransform(HumanBodyBones.LeftUpperArm);    //Get the Rider Left  Shoulder transform

            SetActiveHolder(ActiveHolderSide);                                     //Set one Holder to Draw Weapons
            CombatMode    = false;
            ActiveAbility = null;

            Layer_RiderArmLeft  = Anim.GetLayerIndex("Rider Arm Left");             //Gets the Left Arm Layer Index
            Layer_RiderArmRight = Anim.GetLayerIndex("Rider Arm Right");            //Gets the Right Arm Layer Index
            Layer_RiderCombat   = Anim.GetLayerIndex(CombatLayerName);              //Gets the Combat Later Index


            Aimer        = GetComponent <IAim>();
            Aimer.Active = true;

            if (CloneAbilities)
            {
                for (int i = 0; i < CombatAbilities.Count; i++)
                {
                    RiderCombatAbility instance = (RiderCombatAbility)ScriptableObject.CreateInstance(CombatAbilities[i].GetType());
                    instance           = ScriptableObject.Instantiate(CombatAbilities[i]);                       //Create a clone from the Original Scriptable Objects! IMPORTANT
                    instance.name      = instance.name.Replace("(Clone)", "(C)");
                    CombatAbilities[i] = instance;
                }
            }

            foreach (var ability in CombatAbilities)
            {
                ability.StartAbility(this); //Initialize the Abilities
            }


            //Event Listeners
            Rider.OnStartMounting.AddListener(OnStartMounting);
            Rider.OnStartDismounting.AddListener(OnStartDismounting);
            //rider.OnEndMounting.AddListener(OnEndMounting);
            //rider.OnEndDismounting.AddListener(OnEndDismounting);

            OnAimSide.AddListener(InAimMode);
        }
Ejemplo n.º 3
0
 public virtual void AddAbility(RiderCombatAbility newAbility)
 {
     newAbility.StartAbility(this);
     CombatAbilities.Add(newAbility);
 }