Exemplo n.º 1
0
        public PersistentEffect(Scroll.Atk_Area_Type etyp, Floor.specific_effect setyp,
                                gridCoordinate ectr, int turnsr, bool m_effect,
                                Attack.Damage fx_dmg_type, int aoe_size, int min_dmg, int max_dmg)
        {
            my_effect_type  = etyp;
            my_special_fx   = setyp;
            effect_center   = ectr;
            turns_remaining = turnsr;
            monster_effect  = m_effect;
            effect_ready    = false;
            effect_size     = aoe_size;

            effect_damage_type = fx_dmg_type;

            min_damage = min_dmg;
            max_damage = max_dmg;
        }
Exemplo n.º 2
0
        private Scroll process_sDC(ScrollDC rs)
        {
            int    SIDNO = rs.IDNumber;
            int    SCOST = rs.Cost;
            string SNAME = rs.Name;

            Scroll.Atk_Area_Type SAETP = 0;
            switch (rs.AOEType)
            {
            case "singleTile":
                SAETP = Scroll.Atk_Area_Type.singleTile;
                break;

            case "cloudAOE":
                SAETP = Scroll.Atk_Area_Type.cloudAOE;
                break;

            case "solidblockAOE":
                SAETP = Scroll.Atk_Area_Type.solidblockAOE;
                break;

            case "randomblockAOE":
                SAETP = Scroll.Atk_Area_Type.randomblockAOE;
                break;

            case "personalBuff":
                SAETP = Scroll.Atk_Area_Type.personalBuff;
                break;

            case "piercingBolt":
                SAETP = Scroll.Atk_Area_Type.piercingBolt;
                break;

            case "smallfixedAOE":
                SAETP = Scroll.Atk_Area_Type.smallfixedAOE;
                break;

            case "chainedBolt":
                SAETP = Scroll.Atk_Area_Type.chainedBolt;
                break;

            case "enemyDebuff":
                SAETP = Scroll.Atk_Area_Type.enemyDebuff;
                break;
            }
            int STIER = rs.ScrollTier;
            int SMANA = rs.ManaCost;
            int SRANG = rs.ScrollRange;
            int SAESZ = rs.AOESize;
            int SMNDM = rs.MinDamage;
            int SMADM = rs.MaxDamage;

            Attack.Damage SDMTP = 0;
            switch (rs.DamageType)
            {
            case "Acid":
                SDMTP = Attack.Damage.Acid;
                break;

            case "Crushing":
                SDMTP = Attack.Damage.Crushing;
                break;

            case "Electric":
                SDMTP = Attack.Damage.Electric;
                break;

            case "Fire":
                SDMTP = Attack.Damage.Fire;
                break;

            case "Frost":
                SDMTP = Attack.Damage.Frost;
                break;

            case "Piercing":
                SDMTP = Attack.Damage.Piercing;
                break;

            case "Slashing":
                SDMTP = Attack.Damage.Slashing;
                break;
            }
            bool SDSWL = false;

            if (String.Compare("Y", rs.DestroysWalls) == 0)
            {
                SDSWL = true;
            }
            bool SMLSP = false;

            if (String.Compare("Y", rs.MeleeSpell) == 0)
            {
                SMLSP = true;
            }
            int SCHIP = rs.ChainImpacts;

            Projectile.projectile_type SPRJT = 0;
            switch (rs.SpellProjectile)
            {
            case "Blank":
                SPRJT = Projectile.projectile_type.Blank;
                break;

            case "Arrow":
                SPRJT = Projectile.projectile_type.Arrow;
                break;

            case "Flamebolt":
                SPRJT = Projectile.projectile_type.Flamebolt;
                break;

            case "Javelin":
                SPRJT = Projectile.projectile_type.Javelin;
                break;

            case "AcidCloud":
                SPRJT = Projectile.projectile_type.AcidCloud;
                break;

            case "Crossbow_Bolt":
                SPRJT = Projectile.projectile_type.Crossbow_Bolt;
                break;

            case "Fireball":
                SPRJT = Projectile.projectile_type.Fireball;
                break;

            case "Lightning_Bolt":
                SPRJT = Projectile.projectile_type.Lightning_Bolt;
                break;

            case "Bonespear":
                SPRJT = Projectile.projectile_type.Bonespear;
                break;

            case "Bloody_AcidCloud":
                SPRJT = Projectile.projectile_type.Bloody_AcidCloud;
                break;
            }
            Projectile.special_anim SSPFX = 0;
            switch (rs.SpecialAnimation)
            {
            case "BloodAcid":
                SSPFX = Projectile.special_anim.BloodAcid;
                break;

            case "Alert":
                SSPFX = Projectile.special_anim.Alert;
                break;

            case "Earthquake":
                SSPFX = Projectile.special_anim.Earthquake;
                break;

            case "None":
                SSPFX = Projectile.special_anim.None;
                break;

            case "Blank":
                SSPFX = Projectile.special_anim.Blank;
                break;
            }
            Scroll.Status_Type SBFDB = 0;
            switch (rs.SpellSpecialEffect)
            {
            case "Anosmia":
                SBFDB = Scroll.Status_Type.Anosmia;
                break;

            case "Blind":
                SBFDB = Scroll.Status_Type.Blind;
                break;

            case "Deaf":
                SBFDB = Scroll.Status_Type.Deaf;
                break;

            case "LynxFer":
                SBFDB = Scroll.Status_Type.LynxFer;
                break;

            case "PantherFer":
                SBFDB = Scroll.Status_Type.PantherFer;
                break;

            case "TigerFer":
                SBFDB = Scroll.Status_Type.TigerFer;
                break;
            }
            int SBDDR = rs.SpecialEffectDuration;

            return(new Scroll(SIDNO, SCOST, SNAME, STIER, SMANA, SRANG, SAESZ, SMNDM,
                              SMADM, SMLSP, SAETP, SPRJT, SDMTP, SDSWL, SCHIP, SBFDB,
                              SBDDR, SSPFX));
        }
Exemplo n.º 3
0
        //OKAY LETS Cut this down to one constructor. What stuff is absolutely vital to make one constructor
        //And what can be set later.
        //Start coord and end coord, type of projectile and content manager.
        //Also whether it's a monster projectile or not + attack area type
        public Projectile(gridCoordinate start_gCoord, gridCoordinate end_gCoord, projectile_type myType, ref ContentManager cmanage,
                          bool monster_proj, Scroll.Atk_Area_Type atk_a_typ, bool damage_projectile = true)
        {
            my_type = myType;
            int offset = 0;

            projectile_speed = 240;

            my_prj_type = my_type;
            switch (my_prj_type)
            {
            case projectile_type.Arrow:
                my_texture = cmanage.Load <Texture2D>("Projectiles/arrow");
                break;

            case projectile_type.Flamebolt:
                my_texture = cmanage.Load <Texture2D>("Projectiles/flamebolt");
                break;

            case projectile_type.Frostbolt:
                my_texture = cmanage.Load <Texture2D>("Projectiles/frostbolt");
                break;

            case projectile_type.Javelin:
                my_texture = cmanage.Load <Texture2D>("Projectiles/javelin");
                break;

            case projectile_type.Crossbow_Bolt:
                my_texture = cmanage.Load <Texture2D>("Projectiles/crossbowbolt");
                break;

            case projectile_type.AcidCloud:
                my_texture = cmanage.Load <Texture2D>("Projectiles/acidblob");
                break;

            case projectile_type.Bloody_AcidCloud:
                my_texture = cmanage.Load <Texture2D>("Projectiles/blood_acidblob");
                break;

            case projectile_type.Fireball:
                my_texture = cmanage.Load <Texture2D>("Projectiles/fireball");
                break;

            case projectile_type.Blank:
                my_texture       = cmanage.Load <Texture2D>("Projectiles/blank_projectile");
                projectile_speed = 480;
                break;

            case projectile_type.Lightning_Bolt:
                my_texture = cmanage.Load <Texture2D>("Projectiles/lightningbolt");
                break;

            case projectile_type.Bonespear:
                my_texture = cmanage.Load <Texture2D>("Projectiles/bonespear");
                break;
            }
            monster_projectile  = monster_proj;
            damaging_projectile = damage_projectile;

            my_start_coordinate = new gridCoordinate(start_gCoord);
            my_end_coordinate   = new gridCoordinate(end_gCoord);
            my_current_position = new Vector2((my_start_coordinate.x * 32) + offset, (my_start_coordinate.y * 32) + offset);
            my_end_position     = new Vector2((my_end_coordinate.x * 32) + offset, (my_end_coordinate.y * 32) + offset);

            my_rectangle           = new Rectangle((int)my_current_position.X, (int)my_current_position.Y, 32, 32);
            attack_type            = atk_a_typ;
            my_special_animation   = special_anim.None;
            my_previous_coordinate = new gridCoordinate(-1, -1);

            attached_status_effects = new List <StatusEffect>();
            Scll = null;
            Weap = null;
        }