コード例 #1
0
    protected override void Telegraph()
    {
        Vector2 pummelerPosition = rbody.position;
        Vector2 playerPosition   = PlayerCharacter.instance.transform.position;

        GlobalProjectile.InstantiateProjectile(telegraphPrefab, pummelerPosition, playerPosition, telegraphSpeed);
    }
コード例 #2
0
        public static object GetModGlobalProjConditions(string modname, Projectile proj, string globalprojname, string ConditionName, bool nopub = false, bool sta = false)
        {
            object condition = null;

            if (ModLoader.GetMod(modname) != null)
            {
                Mod mod = ModLoader.GetMod(modname);
                try
                {
                    GlobalProjectile global = proj.GetGlobalProjectile(mod, globalprojname);
                    if (global != null)
                    {
                        BindingFlags binding = (sta? BindingFlags.Static : BindingFlags.Instance) | (nopub? BindingFlags.NonPublic : BindingFlags.Public);
                        return(global.GetType().GetField(ConditionName, binding).GetValue(global));
                    }
                }
                catch
                {
                    return(null);

                    throw new Exception("Error in reading globalproj data.");
                }
            }
            return(condition);
        }
コード例 #3
0
        private bool GlobalProjectileAction(int pWhoAmI)
        {
            try
            {
                GlobalProjectile gProj = ProjectileObject(pWhoAmI).GetGlobalProjectile(modInstance, internalName);
                try
                {
                    FieldInfo field = gProj.GetType().GetField(damageType, BindingFlags.Public | BindingFlags.Instance);
                    return((bool)field.GetValue(gProj));
                }
                catch
                {
                    string msg = $"{modInstance.Name}'s {internalName} does not " +
                                 $"have {damageType} custom damage type variable.";
                    modInstance.Logger.Warn($"Failed integration with ChensGradiusMod. {msg}");

                    return(false);
                }
            }
            catch
            {
                modInstance.Logger.Warn($"Failed integration with ChensGradiusMod. The mod seems to exist, but it is unloaded. Skipping check.");
                return(false);
            }
        }
コード例 #4
0
    protected override void Telegraph()
    {
        telegraphProjectiles = new List <GameObject>();
        Vector2 pummelerPosition = rbody.position;

        for (int i = 0; i < telegraphTargets.Count; i++)
        {
            telegraphProjectiles.Add(GlobalProjectile.InstantiateProjectile(telegraphPrefab, pummelerPosition, telegraphTargets[i].position, telegraphSpeed));
        }
    }
コード例 #5
0
 public override void ExecuteAbility()
 {
     if (CombatHandler.InCombat)
     {
         Vector3 ramTargetPosition = PlayerCharacter.instance.transform.position;
         CombatHandler.WalkingSuspended = true;
         rammingVector      = GlobalVariables.GetVectorBetweenPoints(rbody.position, ramTargetPosition);
         transform.rotation = GlobalProjectile.GetInitialRotation(rammingVector.normalized);
         base.ExecuteAbility();
     }
 }
コード例 #6
0
    public virtual void ShootProjectile()
    {
        GameObject proj = GlobalProjectile.InstantiateProjectile
                          (
            projectilePrefab,
            transform.position,
            PlayerCharacter.instance.transform.position,
            projectileSpeed
                          );

        proj.GetComponent <EnemyBulletDamageSource>().Setup(this);
    }
コード例 #7
0
 public static void SetModGlobalProjConditions(string modname, Projectile proj, string globalprojname, string ConditionName, object Set_value, bool nopub = false, bool sta = false)
 {
     if (ModLoader.GetMod(modname) != null)
     {
         Mod mod = ModLoader.GetMod(modname);
         try
         {
             GlobalProjectile global = proj.GetGlobalProjectile(mod, globalprojname);
             if (global != null)
             {
                 BindingFlags binding = (sta? BindingFlags.Static : BindingFlags.Instance) | (nopub? BindingFlags.NonPublic : BindingFlags.Public);
                 FieldInfo    field   = global.GetType().GetField(ConditionName, binding);
                 if (field.FieldType == Set_value.GetType())
                 {
                     field.SetValue(global, Set_value);
                 }
             }
         }
         catch
         {
             throw new Exception("Error in setting globalitem data.");
         }
     }
 }