private void AssessmentCheck()
        {
            GUIStyle redLabel    = new GUIStyle(EditorStyles.label);
            GUIStyle yellowLabel = new GUIStyle(EditorStyles.label);

            redLabel.normal.textColor    = Color.red;
            yellowLabel.normal.textColor = new Color(0.47f, 0.38f, 0.1f);

            WorldObjectScript worldObjectScript = target as WorldObjectScript;
            PickableScript    pickableScript    = target as PickableScript;
            ActorScript       actorScript       = target as ActorScript;

            if (worldObjectScript != null)
            {
            }
            else if (pickableScript != null)
            {
                if (PickableHasAnyTag() == false)
                {
                    GUILayout.Label("No 'pickable' tag detected!", redLabel);
                }
                if (PickableItemDataFormMatch(pickableScript) == false)
                {
                    GUILayout.Label("FormID & ItemDat not match.", yellowLabel);
                }
            }
        }
Exemplo n.º 2
0
 public BurstGenerator(BurstAttributes attributes, GameObject sourcePos, WeaponScript owner)
 {
     _attributes = attributes;
     _sourcePos = sourcePos;
     _ownerWeapon = owner;
     _ownerActor = owner.GetComponentInParent<ActorScript>();
 }
Exemplo n.º 3
0
 void Start()
 {
     _navMeshAgent = GetComponent<NavMeshAgent>();
     //WaypointPlanner = new WaypointPlanner();
     //WaypointPlanner.WaypointObject = WaypointObject;
     IgnoreLayerMask = LayerMask.NameToLayer("Sensors");
     _actor = GetComponent<ActorScript>();
     _fireControlScript = GetComponent<PlayerFireControlScript>();
 }
Exemplo n.º 4
0
    public PerformedRangeAttackActorEventArgs(Attack att, ActorScript attacker, Vector3 origin, Vector3 dir, float offset, float velocity = float.MaxValue, float dispersion = 60)
    {
        Attack             = att;
        Attacker           = attacker;
        OriginPoint        = origin;
        Direction          = dir;
        ProjectileVelocity = velocity;

        SpawnOffset = offset + 0.2f;

        NumberOfProjectiles = 1;
    }
Exemplo n.º 5
0
        private T CreateActor <T>(SubclassOf <Actor> ActorClass, ActorScript actorScript) where T : Actor
        {
            Actor actor = null;

            if (ActorClass != null)
            {
                actor = Activator.CreateInstance(ActorClass) as Actor;
                actor.PostConstruct();
                if (actorScript != null)
                {
                    actorScript.ApplyToObject(actor);
                }
                else
                {
                    actor.PostScriptApplied();
                }
            }
            else if (actorScript != null)
            {
                actor = actorScript.CreateInstance <Actor>();
            }
            else
            {
                throw new ArgumentNullException(nameof(ActorClass), "Both Actor Class and ActorScript cannot be null.  Provide one.");
            }

            if (actor.Name == null)
            {
                int CompCount = AllActors.Count(x => x.GetType().Name == actor.GetType().Name);
                actor.Name = string.Format("{0}_{1}", actor.GetType().Name, CompCount);
            }

            _AllActors.Add(actor);


            List <ResourcePtr> ResourceCollector = new List <ResourcePtr>();

            actor.CollectResources(ResourceCollector);

            if (ResourceCollector.Count > 0)
            {
                FileSystem.BulkLoadAssets(ResourceCollector,
                                          () => FinishSpawningActor(actor), null);
            }
            else
            {
                FinishSpawningActor(actor);
            }

            return(actor as T);
        }
Exemplo n.º 6
0
    public void RegisterBeingAttacked(BeingAttackedEventArgs args)
    {
        List <KeyValuePair <ActorStatsDeclaration, StatMutator> > temp = args.TheAttack.GetStatChanges();

        foreach (KeyValuePair <ActorStatsDeclaration, StatMutator> pair in temp)
        {
            Mechanics.AddMutator(pair.Key, pair.Value);
        }

        Mechanics.Health.ApplyDamage(args.TheAttack.CalculateDamage());

        LastAttacker = args.TheAttack.Attacker;

        // Animator dostaje informacje że postać dostała trafiona
        // Rozpatrz przypadek gdy postać oberwała krytyka
    }
Exemplo n.º 7
0
    public Attack(AttackType type, float dmg, float variance, float critChance, float critMultiplier, ActorScript attacker = null, List <KeyValuePair <ActorStatsDeclaration, StatMutator> > inflicted = null)
    {
        Type            = type;
        Damage          = dmg;
        DamageVariance  = variance;
        CritChance      = critChance;
        CritModificator = critMultiplier;

        Attacker = attacker;

        InflictedStatChanges =
            (inflicted == null) ?
            new List <KeyValuePair <ActorStatsDeclaration, StatMutator> >() :
            inflicted;

        WasCritical = null;
    }
        private void CreateNew_Actor()
        {
            WorldObjectScript worldObjectScript = target as WorldObjectScript;
            PickableScript    pickableScript    = target as PickableScript;
            ActorScript       actorScript       = target as ActorScript;

            var dir  = NewFolder(target.gameObject.name);
            var path = $"{dir}/{target.gameObject.name}.prefab";

            var prefab1 = PrefabUtility.SaveAsPrefabAssetAndConnect(target.gameObject, path, InteractionMode.UserAction);

            Actor actor = new Actor();

            actor.ID        = actorScript.Get_ObjectRefData().formID.BaseID;
            actor.gameModel = prefab1;

            objectDatabase.Data.allBaseActors.Add(actor);
        }
Exemplo n.º 9
0
    //** ApplyBodyType **
    //Active the selected Actor model
    public void ApplyBodyType()
    {
        selectedBodyType = bodyTypeList [dnBodyType.value - 1].ID;

        string selType = bodyTypeList [dnBodyType.value - 1].Name;

        foreach (BodyObjects record in bodiesObjects)
        {
            record.BodyObject.SetActive(false);
        }

        GameObject toShow = bodiesObjects.Find(x => x.TypeName == selType).BodyObject;

        toShow.SetActive(true);

        objPlayer = toShow;

        actorScript = objPlayer.GetComponent <ActorScript> ();

        dnBodySkins.ClearOptions();
        dnEyeSkin.ClearOptions();

        LoadBodyModels(selectedBodyType);
    }
Exemplo n.º 10
0
        private T CreateActor <T>(SubclassOf <Actor> ActorClass, ActorScript actorScript) where T : Actor
        {
            Actor actor = null;

            if (ActorClass != null)
            {
                actor = Activator.CreateInstance(ActorClass) as Actor;
                actor.PostConstruct();
                if (actorScript != null)
                {
                    actorScript.ApplyToObject(actor);
                }
                else
                {
                    actor.PostScriptApplied();
                }
            }
            else if (actorScript != null)
            {
                actor = actorScript.CreateInstance <Actor>();
            }
            else
            {
                throw new ArgumentNullException(nameof(ActorClass), "Both Actor Class and ActorScript cannot be null.  Provide one.");
            }

            if (actor.Name == null)
            {
                int CompCount = AllActors.Count(x => x.GetType().Name == actor.GetType().Name);
                actor.Name = string.Format("{0}_{1}", actor.GetType().Name, CompCount);
            }

            _AllActors.Add(actor);

            //Init all constructor created actors
            foreach (var Property in actor.GetType().GetProperties())
            {
                if (typeof(ActorComponent).IsAssignableFrom(Property.PropertyType))
                {
                    ActorComponent comp = Property.GetValue(actor) as ActorComponent;

                    if (comp == null)
                    {
                        if (Property.SetMethod != null && Property.GetCustomAttribute <DontConstructComponentAttribute>(true) != null)
                        {
                            comp = Activator.CreateInstance(Property.PropertyType) as ActorComponent;
                            Property.SetValue(actor, comp);
                        }
                        else
                        {
                            continue;
                        }
                    }

                    if (!comp.Registered)
                    {
                        comp.Register();
                    }
                }
            }

            List <ResourcePtr> ResourceCollector = new List <ResourcePtr>();

            actor.CollectResources(ResourceCollector);

            if (ResourceCollector.Count > 0)
            {
                FileSystem.BulkLoadAssets(ResourceCollector,
                                          () => FinishSpawningActor(actor), null);
            }
            else
            {
                FinishSpawningActor(actor);
            }

            return(actor as T);
        }
Exemplo n.º 11
0
 public T CreateActor <T>(ActorScript actorScript) where T : Actor
 {
     return(CreateActor <T>(null, actorScript));
 }
 // Use this for initialization
 void Start()
 {
     _actor = GetComponent<ActorScript>();
 }
Exemplo n.º 13
0
 public void Subscribe(ActorScript actor)
 {
     actor.OnRangedAttack += HandleRangedAttack;
 }
 public void Subscribe(ActorScript actor)
 {
     actor.OnActorGainedExperience += CheckIfNewLevelReached;
 }
Exemplo n.º 15
0
    void Start()
    {
        _player = GameObject.FindGameObjectWithTag("Player").GetComponent<ActorScript>();

        if (_player != null)
        {
            if (_cannonSwitchButton != null)
            {
                _cannonSwitchButton.SwitchState = IsWeaponEnabled(WeaponScript.WeaponClasses.Projectile);
                _cannonSwitchButton.gameObject.transform.parent.gameObject.SetActive(ExistWeapon(WeaponScript.WeaponClasses.Projectile));
            }

            if (_laserSwitchButton != null)
            {
                _laserSwitchButton.SwitchState = IsWeaponEnabled(WeaponScript.WeaponClasses.Energy);
                _laserSwitchButton.gameObject.transform.parent.gameObject.SetActive(ExistWeapon(WeaponScript.WeaponClasses.Energy));
            }

            if (_missiledSwitchButton != null)
            {
                _missiledSwitchButton.SwitchState = IsWeaponEnabled(WeaponScript.WeaponClasses.Missile);
                _missiledSwitchButton.gameObject.transform.parent.gameObject.SetActive(ExistWeapon(WeaponScript.WeaponClasses.Missile));
            }

            if (_grenadeSwitchButton != null)
            {
                _grenadeSwitchButton.SwitchState = IsWeaponEnabled(WeaponScript.WeaponClasses.Grenade);
                _grenadeSwitchButton.gameObject.transform.parent.gameObject.SetActive(ExistWeapon(WeaponScript.WeaponClasses.Grenade));
            }

            if (_weaponsGrid != null)
            {
                _weaponsGrid.repositionNow = true;
            }

            if (_autoFireSwitchButton != null)
            {
                _autoFireSwitchButton.SwitchState = _player.gameObject.GetComponent<PlayerFireControlScript>()._autoFire;
            }
        }
    }
Exemplo n.º 16
0
 public MoveToTargetAIState(ActorScript target, bool follow)
 {
     this.target = target;
     isFollowing = follow;
 }
Exemplo n.º 17
0
 public void KillTarget(ActorScript target)
 {
     ClearStack();
     AddToStackAndSwitchTo(new KillTargetAIState(target));
 }
Exemplo n.º 18
0
 public BeingAttackedEventArgs(Attack att, ActorScript sender)
 {
     TheAttack = att;
     Sender    = sender;
 }
Exemplo n.º 19
0
 public ActorGainedLevelEventArgs(ActorScript sender, int levelGained)
 {
     Sender = sender;
     Level  = levelGained;
 }
Exemplo n.º 20
0
 public ActorGainedExperienceEventArgs(ActorScript rewarded, float exp)
 {
     Sender     = rewarded;
     Experience = exp;
 }
Exemplo n.º 21
0
 public KillTargetAIState(ActorScript target)
 {
     this.target = target;
 }
Exemplo n.º 22
0
 public void MoveToTarget(ActorScript target, bool follow)
 {
     ClearStack();
     AddToStackAndSwitchTo(new MoveToTargetAIState(target, follow));
 }
Exemplo n.º 23
0
 public ActorDiedEventArgs(float exp, ActorScript killer, ActorScript victim)
 {
     ExpReward = exp;
     Killer    = killer;
     Sender    = victim;
 }
Exemplo n.º 24
0
 // Use this for initialization
 void Start()
 {
     _actorScript = GetComponentInParent<ActorScript>();
 }
        private void CreateNew_Pickables()
        {
            WorldObjectScript worldObjectScript = target as WorldObjectScript;
            PickableScript    pickableScript    = target as PickableScript;
            ActorScript       actorScript       = target as ActorScript;

            var dir  = NewFolder(target.gameObject.name);
            var path = $"{dir}/{target.gameObject.name}.prefab";

            var prefab1 = PrefabUtility.SaveAsPrefabAssetAndConnect(target.gameObject, path, InteractionMode.UserAction);

            ItemData_Type itemType = MainUtility.Convert_ObjectToItemType(pickableScript.Get_Pickable_Data().formID.ObjectType);

            if (itemType == ItemData_Type.Ammo)
            {
                Item_Ammo item = new Item_Ammo();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemAmmo.Add(item);
            }
            else if (itemType == ItemData_Type.Armor)
            {
                Item_Armor item = new Item_Armor();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemArmors.Add(item);
            }
            else if (itemType == ItemData_Type.Consume)
            {
                Item_Consumables item = new Item_Consumables();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemConsumables.Add(item);
            }
            else if (itemType == ItemData_Type.Junk)
            {
                Item_Junk item = new Item_Junk();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemJunk.Add(item);
            }
            else if (itemType == ItemData_Type.Key)
            {
                Item_Key item = new Item_Key();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemKey.Add(item);
            }
            else if (itemType == ItemData_Type.Misc)
            {
                Item_Misc item = new Item_Misc();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemMiscs.Add(item);
            }
            else if (itemType == ItemData_Type.Weapon)
            {
                Item_Weapon item = new Item_Weapon();
                item.ID        = pickableScript.Get_ObjectRefData().formID.BaseID;
                item.gameModel = prefab1;

                objectDatabase.Data.allItemWeapon.Add(item);
            }
        }