public Scroll(Scroll s) : base(s.get_my_IDno(), s.get_my_gold_value(), s.get_my_name()) { //Enums my_sType = s.get_spell_type(); spell_dmg_type = s.get_damage_type(); my_prjType = s.get_assoc_projectile(); my_specAnim = s.get_spec_impact_anim(); myBufforDebuff = s.get_status_effect(); //Ints scroll_tier = s.get_tier(); aoe_size = s.get_aoe_size(); max_range = s.get_range(); min_damage = s.get_specific_damage(false); max_damage = s.get_specific_damage(true); total_impacts = s.get_t_impacts(); mana_cost = s.get_manaCost(); buffDebuff_duration = s.get_duration(); //Bools destroys_walls = s.spell_destroys_walls(); melee_range = s.is_melee_range_spell(); }
//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; }
public void attach_scroll(Scroll s) { Scll = s; damage_type = s.get_damage_type(); }