public override void editor_layout(attack_entity attack_ref) { projectile = (GameObject)EditorGUILayout.ObjectField( projectile, typeof(GameObject), false); type = (projectile_type)EditorGUILayout.EnumPopup(type); }
//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; }