public virtual void AdditionalNPCSetup(FactionsEnum Fenum_in, FactionLogic FL_in, int PlayerRepModifier_in)
 {
     FacEnum           = Fenum_in;
     FL                = FL_in;
     PlayerRepModifier = PlayerRepModifier_in;
     Player_Fired      = false;
 }
示例#2
0
    ////////////////////////////////////Access Vars


    ////////////////////////////////////Public Usable Functions
    public virtual void SpawnEnemy(FactionsEnum fac, bool Roam_in, Transform Spawner_Transform_in, float Roam_RangeX_in, float Roam_RangeZ_in, float Roam_cd_in, float cd_randomness_in, float roam_speed_in)
    {
        factionEnum       = fac;
        roam              = Roam_in;
        Spawner_Transform = Spawner_Transform_in;
        roam_rangeX       = Roam_RangeX_in;
        roam_rangeZ       = Roam_RangeZ_in;
        roam_cd           = Roam_cd_in;
        cd_randomness     = cd_randomness_in;
        roam_speed        = roam_speed_in;
    }
示例#3
0
 public void RallyAllies(FactionsEnum fac_in, Transform thisTransform, int CustomRep, float EnableRange = 100)
 {
     for (int i = 1; i < STARTUP_DECLARATIONS.FactionCount; ++i) //Don't Include Player; That is above
     {
         if (ReturnIsAlly(fac_in, (FactionsEnum)i))
         {
             foreach (Transform trans in Tranform_Holder[i])
             {
                 if (trans.gameObject.activeSelf && (trans != thisTransform)) //enabled
                 {
                     float dist = (trans.position - thisTransform.position).magnitude;
                     if (dist < EnableRange) //Need to check because rogues will attack all
                     {
                         trans.GetComponentInChildren <EnemyTemplateMaster>().Set_customReputation(CustomRep);
                         trans.GetComponentInChildren <EnemyTemplateMaster>().EnableAI(false);
                     }
                 }
             }
         }
     }
 }
示例#4
0
    public Transform FindEnemy(FactionsEnum fac_in, Transform thisTransform, int CustomMod, float FindRange = 100)
    {
        Transform ClosestEnemy = null;
        float     min_dist     = FindRange;

        if (ReturnIsEnemyCustomPlayer(fac_in, CustomMod))
        {
            Transform trans = GameObject.Find("Player").transform;
            float     dist  = (trans.position - thisTransform.position).magnitude;
            if (dist < min_dist)
            {
                min_dist     = dist;
                ClosestEnemy = trans;
            }
        }

        for (int i = 1; i < STARTUP_DECLARATIONS.FactionCount; ++i) //Don't Include Player; That is above
        {
            if (ReturnIsEnemy(fac_in, (FactionsEnum)i))
            {
                foreach (Transform trans in Tranform_Holder[i])
                {
                    if (trans.gameObject.activeSelf && (trans != thisTransform)) //enabled
                    {
                        float dist = (trans.position - thisTransform.position).magnitude;
                        if (dist < min_dist) //Need to check because rogues will attack all
                        {
                            min_dist     = dist;
                            ClosestEnemy = trans;
                        }
                    }
                }
            }
        }
        return(ClosestEnemy);
    }
示例#5
0
 private Factions(FactionsEnum @enum)
 {
     Value = @enum;
 }
示例#6
0
 public bool ReturnIsAlly(FactionsEnum Fac_caster, FactionsEnum Fac_target)
 {
     return(AccessReputationMatrix((int)Fac_caster, (int)Fac_target) >= STARTUP_DECLARATIONS.AllyNumber);
 }
示例#7
0
 public bool ReturnIsEnemyCustomPlayer(FactionsEnum Fac_caster, int CustomMod) //Allows some characters to have different reputations with the player
 {
     return(AccessReputationMatrix((int)Fac_caster, 0) + CustomMod <= STARTUP_DECLARATIONS.EnemyNumber);
 }