diff --git a/code/__HELPERS/globalaccess.dm b/code/__HELPERS/globalaccess.dm index 9bc41a47fab..7cd7167d33b 100644 --- a/code/__HELPERS/globalaccess.dm +++ b/code/__HELPERS/globalaccess.dm @@ -941,8 +941,10 @@ return global.blob_resources; if("blob_overminds") return global.blob_overminds; - if("blob_looks") - return global.blob_looks; + if("blob_looks_player") + return global.blob_looks_player; + if("blob_looks_admin") + return global.blob_looks_admin; if("possible_changeling_IDs") return global.possible_changeling_IDs; if("hivemind_bank") @@ -2684,8 +2686,10 @@ global.blob_resources=newval; if("blob_overminds") global.blob_overminds=newval; - if("blob_looks") - global.blob_looks=newval; + if("blob_looks_player") + global.blob_looks_player=newval; + if("blob_looks_admin") + global.blob_looks_admin=newval; if("possible_changeling_IDs") global.possible_changeling_IDs=newval; if("hivemind_bank") @@ -3485,4 +3489,4 @@ if("sc_safecode5") global.sc_safecode5=newval; -/var/list/_all_globals=list("map","masterdatumPool","pooledvariables","prox_sensor_ignored_types","ability_verbs","sent_aliens_to_station","account_hack_attempted","spacevines_spawned","sent_spiders_to_station","lighting_update_lights","lighting_update_corners","lighting_update_overlays","exclude","asset_cache","error_last_seen","error_cooldown","html_interfaces","all_lighting_corners","LIGHTING_CORNER_DIAGONAL","all_lighting_overlays","cargo_telepads","chatResources","bicon_cache","dview_mob","tick_start","meteor_wave_delay","meteors_in_wave","meteor_wave_active","max_meteor_size","chosen_dir","create_mob_html","create_object_html","create_turf_html","any","asset_cache_populated","total_runtimes","total_runtimes_skipped","error_cache","security_level","iconCache","round_end_info","deadmins","lockedvars","type_instances","data_core","plmaster","slmaster","account_DBs","global_map","universe","paper_tag_whitelist","paper_blacklist","BLINDBLOCK","DEAFBLOCK","HULKBLOCK","TELEBLOCK","FIREBLOCK","XRAYBLOCK","CLUMSYBLOCK","FAKEBLOCK","COUGHBLOCK","GLASSESBLOCK","EPILEPSYBLOCK","TWITCHBLOCK","NERVOUSBLOCK","MONKEYBLOCK","BLOCKADD","DIFFMUT","HEADACHEBLOCK","NOBREATHBLOCK","REMOTEVIEWBLOCK","REGENERATEBLOCK","INCREASERUNBLOCK","REMOTETALKBLOCK","MORPHBLOCK","COLDBLOCK","HALLUCINATIONBLOCK","NOPRINTSBLOCK","SHOCKIMMUNITYBLOCK","SMALLSIZEBLOCK","LISPBLOCK","MUTEBLOCK","RADBLOCK","FATBLOCK","CHAVBLOCK","SWEDEBLOCK","SCRAMBLEBLOCK","TOXICFARTBLOCK","STRONGBLOCK","HORNSBLOCK","SMILEBLOCK","ELVISBLOCK","SOBERBLOCK","PSYRESISTBLOCK","FARSIGHTBLOCK","CHAMELEONBLOCK","CRYOBLOCK","EATBLOCK","JUMPBLOCK","MELTBLOCK","EMPATHBLOCK","SUPERFARTBLOCK","IMMOLATEBLOCK","POLYMORPHBLOCK","LOUDBLOCK","WHISPERBLOCK","DIZZYBLOCK","SANSBLOCK","NOIRBLOCK","skipupdate","eventchance","event","hadevent","blobevent","starticon","midicon","endicon","diary","diaryofmeanpeople","admin_diary","href_logfile","station_name","game_version","changelog_hash","game_year","going","master_mode","secret_force_mode","host","aliens_allowed","ooc_allowed","dooc_allowed","traitor_scaling","dna_ident","abandon_allowed","enter_allowed","guests_allowed","shuttle_frozen","shuttle_left","tinted_weldhelh","jobMax","bombers","admin_log","lastsignalers","lawchanges","shuttles","reg_dna","CELLRATE","CHARGELEVEL","WORLD_X_OFFSET","WORLD_Y_OFFSET","shuttle_z","airtunnel_start","airtunnel_stop","airtunnel_bottom","monkeystart","wizardstart","newplayer_start","latejoin","assistant_latejoin","prisonwarp","holdingfacility","xeno_spawn","endgame_safespawns","endgame_exits","tdome1","tdome2","tdomeobserve","tdomeadmin","prisonsecuritywarp","prisonwarped","blobstart","ninjastart","cardinal","diagonal","alldirs","universal_cult_chat","start_state","config","combatlog","IClog","OOClog","adminlog","suspend_alert","Debug","Debug2","debugobj","mods","wavesecret","gravity_is_on","shuttlecoming","join_motd","forceblob","polarstar","nanomanager","sqladdress","sqlport","sqldb","sqllogin","sqlpass","sqlfdbkdb","sqlfdbklogin","sqlfdbkpass","sqllogging","forumsqladdress","forumsqlport","forumsqldb","forumsqllogin","forumsqlpass","forum_activated_group","forum_authenticated_group","fileaccess_timer","custom_event_msg","dbcon","dbcon_old","recall_time_limit","score","trash_items","decals","on_login","on_ban","on_unban","plugins","space_gas","announcement_intercom","sortedAreas","bomberman_mode","bomberman_hurt","bomberman_destroy","volunteer_gladiators","ready_gladiators","never_gladiators","achievements","end_icons","arena_leaderboard","arena_rounds","arena_top_score","endgame_info_logged","explosion_newmethod","snake_station_highscores","snake_best_players","minesweeper_station_highscores","minesweeper_best_players","nanocoins_rates","nanocoins_lastchange","speciesinit","minimapinit","stat_collection","hardcore_mode","mineral_turfs","static_list","grayscale","adminblob_icon","adminblob_size","adminblob_beat","parallax_initialized","space_color","parallax_icon","ai_names","wizard_first","wizard_second","ninja_titles","ninja_names","commando_names","first_names_male","first_names_female","last_names","clown_names","verbs","adjectives","vox_name_syllables","golem_names","borer_names","disable_scrubbers","disable_vents","Space_Tile","MAX_EXPLOSION_RANGE","BODY_PARTS","BODY_COVER_VALUE_LIST","NOIRMATRIX","bad_changing_colour_ckeys","global_mutations","scarySounds","tachycardics","bradycardics","heartstopper","cheartstopper","RESTRICTED_CAMERA_NETWORKS","default_colour_matrix","panicfile","failed_db_connections","failed_old_db_connections","cmp_field","DummyCache","genders","clients","admins","directory","mixed_modes","player_list","mob_list","living_mob_list","dead_mob_list","observers","areas","turfs","chemical_reactions_list","chemical_reagents_list","landmarks_list","surgery_steps","mechas_list","poster_designs","underwear_m","underwear_f","backbaglist","hit_appends","table_recipes","med_hud_users","sec_hud_users","escape_list","church_name","command_name","religion_name","syndicate_name","syndicate_code_phrase","syndicate_code_response","watt_suffixes","number_digits","number_tens","number_units","existing_typesof_cache","common_tools","WALLITEMS","sortInstance","hooks","ventcrawl_machinery","catcher","parallax_on_clients","unstackable_pipes","bent_dirs","pipeID2State","nlist","straight_pipes","bent_pipes","manifold_pipes","heat_pipes","failsafe","garbageCollector","soft_dels","master_controller","last_tick_duration","air_processing_killed","pipe_processing_killed","machine_profiling","emergency_shuttle","active_diseases","events","fast_machines","html_machines","machines","object_profiling","processing_objects","pipe_networks","atmos_machines","on_pipenet_tick","power_machinery_profiling","power_machines","powernets","cable_list","tickerProcess","__btime__lastTimeOfHour","__btime__callCount","__btime__lastTick","processScheduler","randomize_laws","base_law_type","mommi_base_law_type","diseases","map_elements","modules","sun","all_supply_groups","uplink_items","archive_diseases","advance_cures","list_symptoms","dictionary_symptoms","animal_butchering_products","revdata","same_wires","wireColours","PDA_Manifest","vox_sounds","vox_wordlen","outbreak_level_words","spawned_surprises","max_secret_rooms","del_profiling","gdel_profiling","ghdel_profiling","current_centcomm_order_id","all_radios","radiochannels","radiochannelsreverse","CENT_FREQS","radio_controller","pointers","response_team_members","send_emergency_team","ert_base_chance","can_call_ert","nextDecTalkDelay","lastDecTalkUse","freqtospan","freqtoname","ghostimg","resethearers","smoothable_unsims","socket_talk","shatter_sound","explosion_sound","small_explosion_sound","spark_sound","rustle_sound","punch_sound","clown_sound","swing_hit_sound","hiss_sound","page_sound","mechstep_sound","gib_sound","mommicomment_sound","polaroid_sound","male_scream_sound","female_scream_sound","male_cough_sound","female_cough_sound","lightning_sound","soulstone_sound","supply_shuttle","mechtoys","ignored_keys","moved_landmarks","transparent_icons","teleportlocs","ghostteleportlocs","adminbusteleportlocs","centcom_areas","the_station_areas","dna_activity_bounds","assigned_gene_blocks","assigned_blocks","dna_genes","good_blocks","bad_blocks","skin_styles_female_list","hair_styles_list","hair_styles_male_list","hair_styles_female_list","facial_hair_styles_list","facial_hair_styles_male_list","facial_hair_styles_female_list","noir_master","ticker","potential_theft_objectives","blobs","blob_cores","blob_nodes","blob_resources","blob_overminds","blob_looks","possible_changeling_IDs","hivemind_bank","powers","powerinstances","narsie_behaviour","narsie_cometh","narsie_list","mr_clean_targets","cultwords","runedec","engwords","rnwords","rune_list","snow_recipes","Holiday","blob_candidates","mixed_allowed","bomb_set","hsboxspawn","hrefs","banned_sandbox_types","all_jobs","job_master","assistant_occupations","command_positions","engineering_positions","medical_positions","science_positions","civilian_positions","cargo_positions","security_positions","nonhuman_positions","misc_positions","whitelist","alien_whitelist","firealarms","cryo_health_indicator","doppler_arrays","flashers","holosigns","igniters","multitool_var_whitelist","mass_drivers","news_network","allCasters","req_console_assistance","req_console_supplies","req_console_information","allConsoles","status_displays","ai_emotions","status_display_images","num_vending_terminals","floorbot_targets","mulebot_count","camera_names","tv_monitors","shuttle_calls","prison_shuttle_moving_to_station","prison_shuttle_moving_to_prison","prison_shuttle_at_station","prison_shuttle_can_send","prison_shuttle_time","prison_shuttle_timeleft","specops_shuttle_moving_to_station","specops_shuttle_moving_to_centcom","specops_shuttle_at_station","specops_shuttle_can_send","specops_shuttle_time","specops_shuttle_timeleft","syndicate_elite_shuttle_moving_to_station","syndicate_elite_shuttle_moving_to_mothership","syndicate_elite_shuttle_at_station","syndicate_elite_shuttle_can_send","syndicate_elite_shuttle_time","syndicate_elite_shuttle_timeleft","taxi_computers","all_doors","alert_overlays_global","poddoors","recentmessages","message_delay","telecomms_list","word_to_uristrune_table","uristrune_cache","explosion_shake_message_cooldown","explosion_turfs","explosion_in_progress","blood_overlays","reagents_to_log","BUMP_TELEPORTERS","portal_cache","splatter_cache","blood_list","fluidtrack_cache","beacons","all_graffitis","deskbell_default_frequencies","deskbell_freq_cargo","deskbell_freq_hop","deskbell_freq_medbay","deskbell_freq_brig","deskbell_freq_rnd","camera_bugs","pda_app_menus","chatrooms","PDAs","available_paintings","cable_recipes","metal_recipes","plasteel_recipes","wood_recipes","cardboard_recipes","sandstone_recipes","diamond_recipes","uranium_recipes","plasma_recipes","plastic_recipes","gold_recipes","phazon_recipes","silver_recipes","clown_recipes","charcoal_recipes","lightfloor_colors","moneytypes","cached_icons","tracking_implants","bottle_colour_choices","hidden_doors","all_docking_ports","ladders","cargo_shuttle","escape_shuttle","mining_shuttle","arrival_shuttle","transport_shuttle","admin_shuttle","research_shuttle","salvage_shuttle","syndicate_shuttle","taxi_a","taxi_b","trade_shuttle","vox_shuttle","voxresearch_shuttle","icons_to_ignore_at_floor_init","plating_icons","wood_icons","w_overlays","_flatIcons","directional","exception","directional_turfs","BSACooldown","floorIsLava","admin_shuttle_location","alien_ship_location","investigations","admin_ranks","admin_verbs_default","admin_verbs_admin","admin_verbs_ban","admin_verbs_sounds","admin_verbs_fun","admin_verbs_spawn","admin_verbs_server","admin_verbs_debug","admin_verbs_possess","admin_verbs_permissions","admin_verbs_rejuv","admin_verbs_hideable","admin_verbs_mod","appearanceban_runonce","appearance_keylist","jobban_runonce","jobban_keylist","oocban_keylist","admin_datums","CMinutes","Banlist","Banlistjob","adminhelp_ignored_words","checked_for_inactives","inactive_keys","blood_virus_spreading_disabled","camera_range_display_status","intercom_range_display_status","prevent_airgroup_regroup","say_disabled","movement_disabled","movement_disabled_exception","forbidden_varedit_object_types","PROFILING_VERBS","sent_strike_team","sent_syndicate_strike_team","vox_tick","assembly_short_name_to_type","comparison_circuit_operations","math_circuit_operations_list","automation_types","gas_labels","existing_away_missions","awaydestinations","away_mission_subtypes","gateways","maploader","_preloader","swapmaps_iconcache","swapmaps_mode","swapmaps_compiled_maxx","swapmaps_compiled_maxy","swapmaps_compiled_maxz","swapmaps_initialized","swapmaps_loaded","swapmaps_byname","bombermangear","arenas","arena_spawnpoints","preferences_datums","special_roles","antag_roles","nonantag_roles","role_wiki","current_date_string","num_financial_terminals","num_financial_database","num_vending_machines","num_pda_terminals","num_merch_computers","station_account","department_accounts","next_account_number","centcomm_account_db","vendor_account","all_money_accounts","setup_economy","weighted_randomevent_locations","weighted_mundaneevent_locations","station_departments","current_pos_id","pos_sales","wages_enabled","roundstart_enable_wages","event_last_fired","allEvents","potentialRandomEvents","eventTimeLower","eventTimeUpper","scheduledEvent","vox_kills","vox_sent","raiders","thing_storm_types","watchdog","non_fakeattack_weapons","deepFriedEverything","deepFriedNutriment","foodNesting","recursiveFood","ingredientLimit","wizard_cards_rare","wizard_cards_normal","adv_camera","crewmonitor","vote","plant_controller","seed_types","gene_tag_masks","library_catalog","library_section_names","liquid_delay","puddles","global_playlists","loopModeNames","media_receivers","media_transmitters","migration_controller_mysql","migration_controller_sqlite","valid_abandoned_crate_types","material_list","initial_materials","name_to_mineral","mining_surprises","FUCK","slot_equipment_priority","intents","boo_phrases","boo_phrases_drugs","boo_phrases_silicon","virtualhearers","stationary_hearers","coldwarning_light","coldwarning_hard","department_radio_keys","language_keys","all_languages","all_species","whitelisted_species","unconscious_overlays","oxyloss_overlays","brutefireloss_overlays","organ_damage_overlays","damage_icon_parts","cover_protection_value_list","ai_list","announcing_vox","vox_digits","vox_tens","vox_units","cameranet","paiController","borer_chem_types_head","borer_chem_types_chest","borer_chem_types_arm","borer_chem_types_leg","borer_unlock_types_head","borer_unlock_types_chest","borer_unlock_types_arm","borer_unlock_types_leg","animal_count","nest_locations","crate_mimic_disguises","item_mimic_disguises","protected_objects","spider_types","photocollector_list","prism_list","mirror_list","paper_folding_results","paperwork","paperwork_library","battery_charge","battery_charging","battery_online","alllights","powernets_broke","solars_list","rad_collectors","field_gen_list","bullet_master","impact_master","available_staff_transforms","beam_master","existing_vaults","disposalpipeID2State","paint_variants","chifir_doesnt_remove","tonio_doesnt_remove","LOGGED_SPLASH_REAGENTS","valid_random_food_types","cockroach_egg_amount","charcoal_doesnt_remove","message_servers","blackbox","rnd_machines","design_list","tech_list","hidden_tech","responsive_carriers","finds_as_strings","authenticators","maint_all_access","spells","centcomm_store","GPS_list","SPS_list","secure_GPS_count","nukedisk","telesci_warnings","ANTIGENS","disease2_list","virusDB","compatible_mobs","buildmodeholders","newscaster_standard_feeds","announced_news_types","allfaxes","alldepartments","atmos_controllers","ul_FastRoot","sharing_lookup_table","air_master","tick_multiplier","assigned","created","merged","invalid_zone","air_blocked","zone_blocked","blocked","mark","zas_settings","contamination_overlay","accessable_z_levels","sc_safecode1","sc_safecode2","sc_safecode3","sc_safecode4","sc_safecode5") +/var/list/_all_globals=list("map","masterdatumPool","pooledvariables","prox_sensor_ignored_types","ability_verbs","sent_aliens_to_station","account_hack_attempted","spacevines_spawned","sent_spiders_to_station","lighting_update_lights","lighting_update_corners","lighting_update_overlays","exclude","asset_cache","error_last_seen","error_cooldown","html_interfaces","all_lighting_corners","LIGHTING_CORNER_DIAGONAL","all_lighting_overlays","cargo_telepads","chatResources","bicon_cache","dview_mob","tick_start","meteor_wave_delay","meteors_in_wave","meteor_wave_active","max_meteor_size","chosen_dir","create_mob_html","create_object_html","create_turf_html","any","asset_cache_populated","total_runtimes","total_runtimes_skipped","error_cache","security_level","iconCache","round_end_info","deadmins","lockedvars","type_instances","data_core","plmaster","slmaster","account_DBs","global_map","universe","paper_tag_whitelist","paper_blacklist","BLINDBLOCK","DEAFBLOCK","HULKBLOCK","TELEBLOCK","FIREBLOCK","XRAYBLOCK","CLUMSYBLOCK","FAKEBLOCK","COUGHBLOCK","GLASSESBLOCK","EPILEPSYBLOCK","TWITCHBLOCK","NERVOUSBLOCK","MONKEYBLOCK","BLOCKADD","DIFFMUT","HEADACHEBLOCK","NOBREATHBLOCK","REMOTEVIEWBLOCK","REGENERATEBLOCK","INCREASERUNBLOCK","REMOTETALKBLOCK","MORPHBLOCK","COLDBLOCK","HALLUCINATIONBLOCK","NOPRINTSBLOCK","SHOCKIMMUNITYBLOCK","SMALLSIZEBLOCK","LISPBLOCK","MUTEBLOCK","RADBLOCK","FATBLOCK","CHAVBLOCK","SWEDEBLOCK","SCRAMBLEBLOCK","TOXICFARTBLOCK","STRONGBLOCK","HORNSBLOCK","SMILEBLOCK","ELVISBLOCK","SOBERBLOCK","PSYRESISTBLOCK","FARSIGHTBLOCK","CHAMELEONBLOCK","CRYOBLOCK","EATBLOCK","JUMPBLOCK","MELTBLOCK","EMPATHBLOCK","SUPERFARTBLOCK","IMMOLATEBLOCK","POLYMORPHBLOCK","LOUDBLOCK","WHISPERBLOCK","DIZZYBLOCK","SANSBLOCK","NOIRBLOCK","skipupdate","eventchance","event","hadevent","blobevent","starticon","midicon","endicon","diary","diaryofmeanpeople","admin_diary","href_logfile","station_name","game_version","changelog_hash","game_year","going","master_mode","secret_force_mode","host","aliens_allowed","ooc_allowed","dooc_allowed","traitor_scaling","dna_ident","abandon_allowed","enter_allowed","guests_allowed","shuttle_frozen","shuttle_left","tinted_weldhelh","jobMax","bombers","admin_log","lastsignalers","lawchanges","shuttles","reg_dna","CELLRATE","CHARGELEVEL","WORLD_X_OFFSET","WORLD_Y_OFFSET","shuttle_z","airtunnel_start","airtunnel_stop","airtunnel_bottom","monkeystart","wizardstart","newplayer_start","latejoin","assistant_latejoin","prisonwarp","holdingfacility","xeno_spawn","endgame_safespawns","endgame_exits","tdome1","tdome2","tdomeobserve","tdomeadmin","prisonsecuritywarp","prisonwarped","blobstart","ninjastart","cardinal","diagonal","alldirs","universal_cult_chat","start_state","config","combatlog","IClog","OOClog","adminlog","suspend_alert","Debug","Debug2","debugobj","mods","wavesecret","gravity_is_on","shuttlecoming","join_motd","forceblob","polarstar","nanomanager","sqladdress","sqlport","sqldb","sqllogin","sqlpass","sqlfdbkdb","sqlfdbklogin","sqlfdbkpass","sqllogging","forumsqladdress","forumsqlport","forumsqldb","forumsqllogin","forumsqlpass","forum_activated_group","forum_authenticated_group","fileaccess_timer","custom_event_msg","dbcon","dbcon_old","recall_time_limit","score","trash_items","decals","on_login","on_ban","on_unban","plugins","space_gas","announcement_intercom","sortedAreas","bomberman_mode","bomberman_hurt","bomberman_destroy","volunteer_gladiators","ready_gladiators","never_gladiators","achievements","end_icons","arena_leaderboard","arena_rounds","arena_top_score","endgame_info_logged","explosion_newmethod","snake_station_highscores","snake_best_players","minesweeper_station_highscores","minesweeper_best_players","nanocoins_rates","nanocoins_lastchange","speciesinit","minimapinit","stat_collection","hardcore_mode","mineral_turfs","static_list","grayscale","adminblob_icon","adminblob_size","adminblob_beat","parallax_initialized","space_color","parallax_icon","ai_names","wizard_first","wizard_second","ninja_titles","ninja_names","commando_names","first_names_male","first_names_female","last_names","clown_names","verbs","adjectives","vox_name_syllables","golem_names","borer_names","disable_scrubbers","disable_vents","Space_Tile","MAX_EXPLOSION_RANGE","BODY_PARTS","BODY_COVER_VALUE_LIST","NOIRMATRIX","bad_changing_colour_ckeys","global_mutations","scarySounds","tachycardics","bradycardics","heartstopper","cheartstopper","RESTRICTED_CAMERA_NETWORKS","default_colour_matrix","panicfile","failed_db_connections","failed_old_db_connections","cmp_field","DummyCache","genders","clients","admins","directory","mixed_modes","player_list","mob_list","living_mob_list","dead_mob_list","observers","areas","turfs","chemical_reactions_list","chemical_reagents_list","landmarks_list","surgery_steps","mechas_list","poster_designs","underwear_m","underwear_f","backbaglist","hit_appends","table_recipes","med_hud_users","sec_hud_users","escape_list","church_name","command_name","religion_name","syndicate_name","syndicate_code_phrase","syndicate_code_response","watt_suffixes","number_digits","number_tens","number_units","existing_typesof_cache","common_tools","WALLITEMS","sortInstance","hooks","ventcrawl_machinery","catcher","parallax_on_clients","unstackable_pipes","bent_dirs","pipeID2State","nlist","straight_pipes","bent_pipes","manifold_pipes","heat_pipes","failsafe","garbageCollector","soft_dels","master_controller","last_tick_duration","air_processing_killed","pipe_processing_killed","machine_profiling","emergency_shuttle","active_diseases","events","fast_machines","html_machines","machines","object_profiling","processing_objects","pipe_networks","atmos_machines","on_pipenet_tick","power_machinery_profiling","power_machines","powernets","cable_list","tickerProcess","__btime__lastTimeOfHour","__btime__callCount","__btime__lastTick","processScheduler","randomize_laws","base_law_type","mommi_base_law_type","diseases","map_elements","modules","sun","all_supply_groups","uplink_items","archive_diseases","advance_cures","list_symptoms","dictionary_symptoms","animal_butchering_products","revdata","same_wires","wireColours","PDA_Manifest","vox_sounds","vox_wordlen","outbreak_level_words","spawned_surprises","max_secret_rooms","del_profiling","gdel_profiling","ghdel_profiling","current_centcomm_order_id","all_radios","radiochannels","radiochannelsreverse","CENT_FREQS","radio_controller","pointers","response_team_members","send_emergency_team","ert_base_chance","can_call_ert","nextDecTalkDelay","lastDecTalkUse","freqtospan","freqtoname","ghostimg","resethearers","smoothable_unsims","socket_talk","shatter_sound","explosion_sound","small_explosion_sound","spark_sound","rustle_sound","punch_sound","clown_sound","swing_hit_sound","hiss_sound","page_sound","mechstep_sound","gib_sound","mommicomment_sound","polaroid_sound","male_scream_sound","female_scream_sound","male_cough_sound","female_cough_sound","lightning_sound","soulstone_sound","supply_shuttle","mechtoys","ignored_keys","moved_landmarks","transparent_icons","teleportlocs","ghostteleportlocs","adminbusteleportlocs","centcom_areas","the_station_areas","dna_activity_bounds","assigned_gene_blocks","assigned_blocks","dna_genes","good_blocks","bad_blocks","skin_styles_female_list","hair_styles_list","hair_styles_male_list","hair_styles_female_list","facial_hair_styles_list","facial_hair_styles_male_list","facial_hair_styles_female_list","noir_master","ticker","potential_theft_objectives","blobs","blob_cores","blob_nodes","blob_resources","blob_overminds","blob_looks_player","blob_looks_admin","possible_changeling_IDs","hivemind_bank","powers","powerinstances","narsie_behaviour","narsie_cometh","narsie_list","mr_clean_targets","cultwords","runedec","engwords","rnwords","rune_list","snow_recipes","Holiday","blob_candidates","mixed_allowed","bomb_set","hsboxspawn","hrefs","banned_sandbox_types","all_jobs","job_master","assistant_occupations","command_positions","engineering_positions","medical_positions","science_positions","civilian_positions","cargo_positions","security_positions","nonhuman_positions","misc_positions","whitelist","alien_whitelist","firealarms","cryo_health_indicator","doppler_arrays","flashers","holosigns","igniters","multitool_var_whitelist","mass_drivers","news_network","allCasters","req_console_assistance","req_console_supplies","req_console_information","allConsoles","status_displays","ai_emotions","status_display_images","num_vending_terminals","floorbot_targets","mulebot_count","camera_names","tv_monitors","shuttle_calls","prison_shuttle_moving_to_station","prison_shuttle_moving_to_prison","prison_shuttle_at_station","prison_shuttle_can_send","prison_shuttle_time","prison_shuttle_timeleft","specops_shuttle_moving_to_station","specops_shuttle_moving_to_centcom","specops_shuttle_at_station","specops_shuttle_can_send","specops_shuttle_time","specops_shuttle_timeleft","syndicate_elite_shuttle_moving_to_station","syndicate_elite_shuttle_moving_to_mothership","syndicate_elite_shuttle_at_station","syndicate_elite_shuttle_can_send","syndicate_elite_shuttle_time","syndicate_elite_shuttle_timeleft","taxi_computers","all_doors","alert_overlays_global","poddoors","recentmessages","message_delay","telecomms_list","word_to_uristrune_table","uristrune_cache","explosion_shake_message_cooldown","explosion_turfs","explosion_in_progress","blood_overlays","reagents_to_log","BUMP_TELEPORTERS","portal_cache","splatter_cache","blood_list","fluidtrack_cache","beacons","all_graffitis","deskbell_default_frequencies","deskbell_freq_cargo","deskbell_freq_hop","deskbell_freq_medbay","deskbell_freq_brig","deskbell_freq_rnd","camera_bugs","pda_app_menus","chatrooms","PDAs","available_paintings","cable_recipes","metal_recipes","plasteel_recipes","wood_recipes","cardboard_recipes","sandstone_recipes","diamond_recipes","uranium_recipes","plasma_recipes","plastic_recipes","gold_recipes","phazon_recipes","silver_recipes","clown_recipes","charcoal_recipes","lightfloor_colors","moneytypes","cached_icons","tracking_implants","bottle_colour_choices","hidden_doors","all_docking_ports","ladders","cargo_shuttle","escape_shuttle","mining_shuttle","arrival_shuttle","transport_shuttle","admin_shuttle","research_shuttle","salvage_shuttle","syndicate_shuttle","taxi_a","taxi_b","trade_shuttle","vox_shuttle","voxresearch_shuttle","icons_to_ignore_at_floor_init","plating_icons","wood_icons","w_overlays","_flatIcons","directional","exception","directional_turfs","BSACooldown","floorIsLava","admin_shuttle_location","alien_ship_location","investigations","admin_ranks","admin_verbs_default","admin_verbs_admin","admin_verbs_ban","admin_verbs_sounds","admin_verbs_fun","admin_verbs_spawn","admin_verbs_server","admin_verbs_debug","admin_verbs_possess","admin_verbs_permissions","admin_verbs_rejuv","admin_verbs_hideable","admin_verbs_mod","appearanceban_runonce","appearance_keylist","jobban_runonce","jobban_keylist","oocban_keylist","admin_datums","CMinutes","Banlist","Banlistjob","adminhelp_ignored_words","checked_for_inactives","inactive_keys","blood_virus_spreading_disabled","camera_range_display_status","intercom_range_display_status","prevent_airgroup_regroup","say_disabled","movement_disabled","movement_disabled_exception","forbidden_varedit_object_types","PROFILING_VERBS","sent_strike_team","sent_syndicate_strike_team","vox_tick","assembly_short_name_to_type","comparison_circuit_operations","math_circuit_operations_list","automation_types","gas_labels","existing_away_missions","awaydestinations","away_mission_subtypes","gateways","maploader","_preloader","swapmaps_iconcache","swapmaps_mode","swapmaps_compiled_maxx","swapmaps_compiled_maxy","swapmaps_compiled_maxz","swapmaps_initialized","swapmaps_loaded","swapmaps_byname","bombermangear","arenas","arena_spawnpoints","preferences_datums","special_roles","antag_roles","nonantag_roles","role_wiki","current_date_string","num_financial_terminals","num_financial_database","num_vending_machines","num_pda_terminals","num_merch_computers","station_account","department_accounts","next_account_number","centcomm_account_db","vendor_account","all_money_accounts","setup_economy","weighted_randomevent_locations","weighted_mundaneevent_locations","station_departments","current_pos_id","pos_sales","wages_enabled","roundstart_enable_wages","event_last_fired","allEvents","potentialRandomEvents","eventTimeLower","eventTimeUpper","scheduledEvent","vox_kills","vox_sent","raiders","thing_storm_types","watchdog","non_fakeattack_weapons","deepFriedEverything","deepFriedNutriment","foodNesting","recursiveFood","ingredientLimit","wizard_cards_rare","wizard_cards_normal","adv_camera","crewmonitor","vote","plant_controller","seed_types","gene_tag_masks","library_catalog","library_section_names","liquid_delay","puddles","global_playlists","loopModeNames","media_receivers","media_transmitters","migration_controller_mysql","migration_controller_sqlite","valid_abandoned_crate_types","material_list","initial_materials","name_to_mineral","mining_surprises","FUCK","slot_equipment_priority","intents","boo_phrases","boo_phrases_drugs","boo_phrases_silicon","virtualhearers","stationary_hearers","coldwarning_light","coldwarning_hard","department_radio_keys","language_keys","all_languages","all_species","whitelisted_species","unconscious_overlays","oxyloss_overlays","brutefireloss_overlays","organ_damage_overlays","damage_icon_parts","cover_protection_value_list","ai_list","announcing_vox","vox_digits","vox_tens","vox_units","cameranet","paiController","borer_chem_types_head","borer_chem_types_chest","borer_chem_types_arm","borer_chem_types_leg","borer_unlock_types_head","borer_unlock_types_chest","borer_unlock_types_arm","borer_unlock_types_leg","animal_count","nest_locations","crate_mimic_disguises","item_mimic_disguises","protected_objects","spider_types","photocollector_list","prism_list","mirror_list","paper_folding_results","paperwork","paperwork_library","battery_charge","battery_charging","battery_online","alllights","powernets_broke","solars_list","rad_collectors","field_gen_list","bullet_master","impact_master","available_staff_transforms","beam_master","existing_vaults","disposalpipeID2State","paint_variants","chifir_doesnt_remove","tonio_doesnt_remove","LOGGED_SPLASH_REAGENTS","valid_random_food_types","cockroach_egg_amount","charcoal_doesnt_remove","message_servers","blackbox","rnd_machines","design_list","tech_list","hidden_tech","responsive_carriers","finds_as_strings","authenticators","maint_all_access","spells","centcomm_store","GPS_list","SPS_list","secure_GPS_count","nukedisk","telesci_warnings","ANTIGENS","disease2_list","virusDB","compatible_mobs","buildmodeholders","newscaster_standard_feeds","announced_news_types","allfaxes","alldepartments","atmos_controllers","ul_FastRoot","sharing_lookup_table","air_master","tick_multiplier","assigned","created","merged","invalid_zone","air_blocked","zone_blocked","blocked","mark","zas_settings","contamination_overlay","accessable_z_levels","sc_safecode1","sc_safecode2","sc_safecode3","sc_safecode4","sc_safecode5") diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index aabce29c8cc..d26d07462f8 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -719,50 +719,32 @@ A.toggle_lights(usr,2) /obj/screen/specialblob/Click() - switch(name) - if("Spawn Blob") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if(isovermind(usr)) + var/mob/camera/blob/overmind = usr + switch(name) + if("Spawn Blob") overmind.expand_blob_power() - if("Spawn Strong Blob") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Spawn Strong Blob") overmind.create_shield_power() - if("Spawn Resource Blob") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Spawn Resource Blob") overmind.create_resource() - if("Spawn Factory Blob") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Spawn Factory Blob") overmind.create_factory() - if("Spawn Node Blob") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Spawn Node Blob") overmind.create_node() - if("Spawn Blob Core") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Spawn Blob Core") overmind.create_core() - if("Call Overminds") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Call Overminds") overmind.callblobs() - if("Rally Spores") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Rally Spores") overmind.rally_spores_power() - if("Psionic Message") - if(isovermind(usr)) - var/mob/camera/blob/overmind = usr + if("Psionic Message") var/message = input(overmind,"Send a message to the crew.","Psionic Message") as null|text if(message) overmind.telepathy(message) - if("Jump to Blob") - if(isovermind(usr) && linked_blob) - var/mob/camera/blob/overmind = usr + if("Jump to Blob") overmind.forceMove(linked_blob.loc) - return 1 + return 1 /obj/screen/inventory/Click() // At this point in client Click() code we have passed the 1/10 sec check and little else diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b84454be847..d69b3350645 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -432,7 +432,7 @@ its easier to just keep the beam vertical. //DEBUG to_chat(pick(player_list),"blob_act() on [src] ([src.type])") if(flags & INVULNERABLE) return - anim(target = loc, a_icon = 'icons/mob/blob.dmi', flick_anim = "blob_act", sleeptime = 15, lay = 12) + anim(target = loc, a_icon = 'icons/mob/blob/blob.dmi', flick_anim = "blob_act", sleeptime = 15, lay = 12) return /* diff --git a/code/game/gamemodes/blob/_blob_defines.dm b/code/game/gamemodes/blob/_blob_defines.dm new file mode 100644 index 00000000000..d28daafe516 --- /dev/null +++ b/code/game/gamemodes/blob/_blob_defines.dm @@ -0,0 +1,11 @@ +#define BLOBCORECOSTINC 50 +#define BLOBCOREBASECOST 100 +#define BLOBSHICOST 10 +#define BLOBRESCOST 40 +#define BLOBFACCOST 60 +#define BLOBNODCOST 60 +#define BLOBATTCOST 5 +#define BLOBRALCOST 5 +#define BLOBTAUNTCOST 15 + +#define BLOBNDPOINTINC 10 \ No newline at end of file diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index 0c7a23b3df2..e77c6643e89 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -44,7 +44,7 @@ datum/game_mode/proc/auto_declare_completion_blob() if(blob_mode.infected_crew.len) text += "The blob[(blob_mode.infected_crew.len > 1 ? "s were" : " was")]:" - var/icon/logo = icon('icons/mob/blob.dmi', "blob_core") + var/icon/logo = icon('icons/mob/blob/blob.dmi', "blob_core") end_icons += logo var/tempstate = end_icons.len for(var/datum/mind/blob in blob_mode.infected_crew) diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 515df234003..3387ac6019a 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -25,7 +25,7 @@ blob_cores += src processing_objects.Add(src) creator = C - if((blob_looks[looks] == 64) && !no_morph) + if((icon_size == 64) && !no_morph) if(new_overmind) flick("core_spawn",src) else @@ -86,8 +86,8 @@ if(!spawning)//no expanding on the first Life() tick - if(blob_looks[looks] == 64) - anim(target = loc, a_icon = icon, flick_anim = "corepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 200) + if(icon_size == 64) + // anim(target = loc, a_icon = icon, flick_anim = "corepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 200) for(var/mob/M in viewers(src)) M.playsound_local(loc, adminblob_beat, 50, 0, null, FALLOFF_SOUNDS, 0) @@ -157,8 +157,8 @@ B.verbs += /mob/camera/blob/proc/create_core spawn() - var/can_choose_from = blob_looks - "adminbus" - var/chosen = input(B,"Select a blob looks", "Blob Looks", blob_looks[1]) as null|anything in can_choose_from + var/can_choose_from = blob_looks_player + var/chosen = input(B,"Select a blob looks", "Blob Looks", blob_looks_player[1]) as null|anything in can_choose_from if(chosen) for(var/obj/effect/blob/nearby_blob in range(src,5)) nearby_blob.looks = chosen @@ -184,7 +184,7 @@ return 0 /obj/effect/blob/core/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index fe59ed145e6..3d70ed1ff8d 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -17,7 +17,7 @@ /obj/effect/blob/factory/New(loc,newlook = "new") ..() - if(blob_looks[looks] == 64) + if(icon_size == 64) flick("morph_factory",src) spore_delay = world.time + (2 SECONDS) @@ -28,7 +28,7 @@ return 0 spore_delay = world.time + (40 SECONDS) // 30 seconds - if(blob_looks[looks] == 64) + if(icon_size == 64) flick("factorypulse",src) anim(target = loc, a_icon = icon, flick_anim = "sporepulse", sleeptime = 15, lay = 7.2, offX = -16, offY = -16, alph = 220) spawn(10) @@ -51,7 +51,7 @@ ..() /obj/effect/blob/factory/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 @@ -72,7 +72,7 @@ /mob/living/simple_animal/hostile/blobspore name = "Blob Spore" desc = "A form of blob antibodies that attack foreign entities." - icon = 'icons/mob/blob.dmi' + icon = 'icons/mob/blob/blob.dmi' icon_state = "blobpod" icon_living = "blobpod" pass_flags = PASSBLOB @@ -97,6 +97,7 @@ if(istype(linked_node)) factory = linked_node factory.spores += src + icon = factory.icon ..() /mob/living/simple_animal/hostile/blobspore/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index 38dff3e32be..16be2c08521 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -18,7 +18,7 @@ processing_objects.Add(src) ..(loc, newlook) - if((blob_looks[looks] == 64) && !no_morph) + if((icon_size == 64) && !no_morph) flick("morph_node",src) /obj/effect/blob/node/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) @@ -30,6 +30,7 @@ to_chat(overmind,"A node blob that you had created has been destroyed. (JUMP)") overmind.special_blobs -= src overmind.update_specialblobs() + overmind.max_blob_points -= BLOBNDPOINTINC processing_objects.Remove(src) ..() @@ -37,8 +38,8 @@ if(timestopped) return 0 //under effects of time magick - if(blob_looks[looks] == 64) - anim(target = loc, a_icon = icon, flick_anim = "nodepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 150) + if(icon_size == 64) + // anim(target = loc, a_icon = icon, flick_anim = "nodepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 150) for(var/mob/M in viewers(src)) M.playsound_local(loc, adminblob_beat, 50, 0, null, FALLOFF_SOUNDS, 0) @@ -53,7 +54,7 @@ return 0 /obj/effect/blob/node/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 diff --git a/code/game/gamemodes/blob/blobs/resource.dm b/code/game/gamemodes/blob/blobs/resource.dm index 9752cd99195..c0e8ee1ad00 100644 --- a/code/game/gamemodes/blob/blobs/resource.dm +++ b/code/game/gamemodes/blob/blobs/resource.dm @@ -17,7 +17,7 @@ ..() blob_resources += src - if(blob_looks[looks] == 64) + if(icon_size == 64) flick("morph_resource",src) /obj/effect/blob/resource/Destroy() @@ -46,8 +46,8 @@ resource_delay = world.time + (4 SECONDS) if(overmind) - if(blob_looks[looks] == 64) - anim(target = loc, a_icon = icon, flick_anim = "resourcepulse", sleeptime = 15, lay = 7.2, offX = -16, offY = -16, alph = 220) + /* if(blob_looks[looks] == 64) + anim(target = loc, a_icon = icon, flick_anim = "resourcepulse", sleeptime = 15, lay = 7.2, offX = -16, offY = -16, alph = 220)*/ overmind.add_points(1) return 1 @@ -59,7 +59,7 @@ else color = "#888888" - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 44d3ea573ca..89865857e02 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -32,14 +32,14 @@ health += 10 return 1 - +/* /obj/effect/blob/shield/Pulse(var/pulse = 0, var/origin_dir = 0) ..() if(blob_looks[looks] == 64) anim(target = loc, a_icon = 'icons/mob/blob_64x64.dmi', flick_anim = "strongpulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 51) - +*/ /obj/effect/blob/shield/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index fd37142b360..24161386421 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -1,7 +1,7 @@ /mob/camera/blob name = "Blob Overmind" real_name = "Blob Overmind" - icon = 'icons/mob/blob.dmi' + icon = 'icons/mob/blob/blob.dmi' icon_state = "marker" see_in_dark = 8 @@ -112,7 +112,7 @@ if(points != 0) blob_points = Clamp(blob_points + points, 0, max_blob_points) stat_collection.blobblob.res_generated += points - + var/number_of_cores = blob_cores.len //Updating the HUD if(hud_used) var/matrix/M = matrix() @@ -134,19 +134,19 @@ hud_used.mymob.gui_icons.blob_rally.color = grayscale hud_used.mymob.gui_icons.blob_taunt.color = grayscale - if(blob_points >= 5) + if(blob_points >= BLOBATTCOST) hud_used.mymob.gui_icons.blob_spawnblob.color = null hud_used.mymob.gui_icons.blob_rally.color = null - if(blob_points >= 10) + if(blob_points >= BLOBSHICOST) hud_used.mymob.gui_icons.blob_spawnstrong.color = null - if(blob_points >= 15) + if(blob_points >= BLOBTAUNTCOST) hud_used.mymob.gui_icons.blob_taunt.color = null - if(blob_points >= 40) + if(blob_points >= BLOBRESCOST) hud_used.mymob.gui_icons.blob_spawnresource.color = null - if(blob_points >= 60) + if(blob_points >= BLOBFACCOST) hud_used.mymob.gui_icons.blob_spawnfactory.color = null hud_used.mymob.gui_icons.blob_spawnnode.color = null - if(blob_points >= 100) + if(blob_points >= BLOBCOREBASECOST+(BLOBCORECOSTINC*(number_of_cores-1))) hud_used.mymob.gui_icons.blob_spawncore.color = null /mob/camera/blob/say(var/message) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index faf5d6bf35b..bd72794b3e9 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -33,7 +33,7 @@ /mob/camera/blob/verb/create_shield_power() set category = "Blob" - set name = "Create Shield Blob (10)" + set name = "Create Shield Blob" set desc = "Create a shield blob." var/turf/T = get_turf(src) @@ -52,7 +52,7 @@ to_chat(src, "Unable to use this blob, find a normal one.") return - if(!can_buy(10)) + if(!can_buy(BLOBSHICOST)) return @@ -63,7 +63,7 @@ /mob/camera/blob/verb/create_resource() set category = "Blob" - set name = "Create Resource Blob (40)" + set name = "Create Resource Blob" set desc = "Create a resource tower which will generate points for you." @@ -86,7 +86,7 @@ to_chat(src, "There is a resource blob nearby, move more than 4 tiles away from it!") return - if(!can_buy(40)) + if(!can_buy(BLOBRESCOST)) return @@ -100,7 +100,7 @@ /mob/camera/blob/proc/create_core() set category = "Blob" - set name = "Create Core Blob (100)" + set name = "Create Core Blob" set desc = "Create another Core Blob to aid in the station takeover" @@ -122,8 +122,11 @@ for(var/obj/effect/blob/core/blob in orange(15)) to_chat(src, "There is another core blob nearby, move more than 15 tiles away from it!") return + var/number_of_cores = blob_cores.len + var/cost = BLOBCOREBASECOST+(BLOBCORECOSTINC*(number_of_cores-1)) - if(!can_buy(100)) + if(!can_buy(cost)) + to_chat(src, "Current cost of a blob core is [cost]!") return @@ -133,7 +136,7 @@ /mob/camera/blob/verb/create_node() set category = "Blob" - set name = "Create Node Blob (60)" + set name = "Create Node Blob" set desc = "Create a Node." @@ -156,7 +159,7 @@ to_chat(src, "There is another node nearby, move more than 5 tiles away from it!") return - if(!can_buy(60)) + if(!can_buy(BLOBNODCOST)) return @@ -166,12 +169,13 @@ N.overmind = src special_blobs += N update_specialblobs() + max_blob_points += BLOBNDPOINTINC return /mob/camera/blob/verb/create_factory() set category = "Blob" - set name = "Create Factory Blob (60)" + set name = "Create Factory Blob" set desc = "Create a Spore producing blob." @@ -193,7 +197,7 @@ to_chat(src, "There is a factory blob nearby, move more than 7 tiles away from it!") return - if(!can_buy(60)) + if(!can_buy(BLOBFACCOST)) return B.change_to(/obj/effect/blob/factory) @@ -254,7 +258,7 @@ /mob/camera/blob/verb/expand_blob_power() set category = "Blob" - set name = "Expand/Attack Blob (5)" + set name = "Expand/Attack Blob" set desc = "Attempts to create a new blob in this tile. If the tile isn't clear we will attack it, which might clear it." var/turf/T = get_turf(src) @@ -274,7 +278,7 @@ to_chat(src, "There is no blob adjacent to you.") return - if(!can_buy(5)) + if(!can_buy(BLOBATTCOST)) return OB.expand(T, 0) return @@ -282,7 +286,7 @@ /mob/camera/blob/verb/rally_spores_power() set category = "Blob" - set name = "Rally Spores (5)" + set name = "Rally Spores" set desc = "Rally the spores to move to your location." var/turf/T = get_turf(src) @@ -291,7 +295,7 @@ /mob/camera/blob/proc/rally_spores(var/turf/T) - if(!can_buy(5)) + if(!can_buy(BLOBRALCOST)) return to_chat(src, "You rally your spores.") @@ -306,12 +310,20 @@ BS.Goto(pick(surrounding_turfs), BS.move_to_delay) return -/mob/camera/blob/verb/telepathy(message as text) +/mob/camera/blob/verb/telepathy_power() set category = "Blob" - set name = "Psionic Message (15)" + set name = "Psionic Message" set desc = "Give a psionic message to all creatures on and around the station." + telepathy() + +/mob/camera/blob/proc/telepathy(message as text) + + if(!can_buy(BLOBTAUNTCOST)) + return + to_chat(world, "Your vision becomes cloudy, and your mind becomes clear.") spawn(5) to_chat(world, "[message]") + add_gamelogs(src, "used blob telepathy to convey \"[message]\"", tp_link = TRUE) log_blobtelepathy("[key_name(usr)]: [message]") diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index a22298dada2..fcae83241e7 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -38,7 +38,7 @@ var/list/blob_looks /obj/effect/blob name = "blob" - icon = 'icons/mob/blob_64x64.dmi' + icon = 'icons/mob/blob/blob_64x64.dmi' icon_state = "center" luminosity = 2 desc = "Some blob creature thingy" @@ -70,6 +70,7 @@ var/list/blob_looks var/icon_classic = "blob" var/manual_remove = 0 + var/icon_size = 64 /obj/effect/blob/blob_act() return @@ -87,7 +88,7 @@ var/list/blob_looks src.dir = pick(cardinal) time_since_last_pulse = world.time - if(blob_looks[looks] == 64) + if(icon_size == 64) if(spawning && !no_morph) icon_state = initial(icon_state) + "_spawn" spawn(10) @@ -110,7 +111,7 @@ var/list/blob_looks dying = 1 blobs -= src - if(blob_looks[looks] == 64) + if(icon_size == 64) for(var/atom/movable/overlay/O in loc) returnToPool(O) @@ -230,7 +231,7 @@ var/list/blob_looks return /obj/effect/blob/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) if(health < maxhealth) var/hurt_percentage = round((health * 100) / maxhealth) var/hurt_icon @@ -246,9 +247,10 @@ var/list/blob_looks overlays += image(icon,hurt_icon) /obj/effect/blob/proc/update_looks(var/right_now = 0) - switch(blob_looks[looks]) + switch(blob_looks_admin[looks]) //blob_looks_admin should have every possible blob skin if(64) icon_state = icon_new + icon_size = 64 pixel_x = -WORLD_ICON_SIZE/2 pixel_y = -WORLD_ICON_SIZE/2 layer = initial(layer) @@ -256,6 +258,7 @@ var/list/blob_looks spawning = 0 if(32) icon_state = icon_classic + icon_size = 32 pixel_x = 0 pixel_y = 0 layer = OBJ_LAYER @@ -263,11 +266,15 @@ var/list/blob_looks switch(looks) if("new") - icon = 'icons/mob/blob_64x64.dmi' + icon = 'icons/mob/blob/blob_64x64.dmi' if("classic") - icon = 'icons/mob/blob.dmi' + icon = 'icons/mob/blob/blob.dmi' if("adminbus") icon = adminblob_icon + if("clownscape") + icon = 'icons/mob/blob/blob_honkscape.dmi' + if("AME") + icon = 'icons/mob/blob/blob_AME.dmi' //<----------------------------------------------------------------------------DEAR SPRITERS, THIS IS WHERE YOU ADD YOUR NEW BLOB DMIs /*EXAMPLES if("fleshy") @@ -279,10 +286,17 @@ var/list/blob_looks if(right_now) update_icon() -var/list/blob_looks = list( +var/list/blob_looks_admin = list(//Options available to admins "new" = 64, "classic" = 32, "adminbus" = adminblob_size, + "clownscape" = 32, + "AME" = 32, + ) + +var/list/blob_looks_player = list(//Options available to players + "new" = 64, + "classic" = 32, ) //<---------------------------------------ALSO ADD THE NAME OF YOUR BLOB LOOKS HERE, AS WELL AS THE RESOLUTION OF THE DMIS (64 or 32) @@ -358,7 +372,7 @@ var/list/blob_looks = list( var/obj/effect/blob/normal/B = new(src.loc, newlook = looks) B.density = 1 - if(blob_looks[looks] == 64) + if(icon_size == 64) if(istype(src,/obj/effect/blob/normal)) var/num = rand(1,100) num /= 10000 @@ -366,7 +380,7 @@ var/list/blob_looks = list( if(T.Enter(B,src))//Attempt to move into the tile B.density = initial(B.density) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) B.forceMove(T) B.aftermove() @@ -413,14 +427,14 @@ var/list/blob_looks = list( /obj/effect/blob/normal/Delete() ..() - +/* /obj/effect/blob/normal/Pulse(var/pulse = 0, var/origin_dir = 0) ..() - if(blob_looks[looks] == 64) + if(icon_size == 64) anim(target = loc, a_icon = icon, flick_anim = "pulse", sleeptime = 15, direction = dir, lay = 12, offX = -16, offY = -16, alph = 51) - +*/ /obj/effect/blob/normal/update_icon(var/spawnend = 0) - if(blob_looks[looks] == 64) + if(icon_size == 64) spawn(1) overlays.len = 0 underlays.len = 0 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 89ecd9a9c6f..dde232cb4a5 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -191,6 +191,7 @@ var/global/floorIsLava = 0 Ian | Crab | Coffee + BLOB
\[ Silicon: AI, | Cyborg \]
\[ Alien: Drone, diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index abeae52d753..13b5ffd3e1f 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1060,8 +1060,8 @@ var/list/admin_verbs_mod = list( set category = "Fun" var/to_choose_from = list("ADMINBUS (custom DMI upload)") - to_choose_from += blob_looks - "adminbus" - var/chosen = input("This will change the looks of every blob currently in the world.", "Blob Looks", blob_looks[1]) as null|anything in to_choose_from + to_choose_from += blob_looks_admin + var/chosen = input("This will change the looks of every blob currently in the world.", "Blob Looks", blob_looks_admin[1]) as null|anything in to_choose_from if(!chosen) return @@ -1077,7 +1077,7 @@ var/list/admin_verbs_mod = list( else adminblob_beat = 'sound/effects/blob_pulse.ogg' - blob_looks["adminbus"] = adminblob_size + blob_looks_admin["adminbus"] = adminblob_size chosen = "adminbus" else adminblob_icon = null diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index ef7bfde703d..4af28b1481e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -421,6 +421,11 @@ new_mob = M.change_mob_type( /mob/living/simple_animal/construct/wraith , null, null, delmob ) if("shade") new_mob = M.change_mob_type( /mob/living/simple_animal/shade , null, null, delmob ) + if("blob") + var/obj/effect/blob/core/core = new(loc = get_turf(M), new_overmind = M.client) + new_mob = core.overmind + if(delmob) + qdel(M) if("ai") new_mob = M.AIize(spawn_here = 1, del_mob = delmob) // to_chat(world, "Made a [new_mob] [usr ? "usr still exists" : "usr does not exist"]") diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index e4fed60a7d5..d48612ce0d0 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -438,3 +438,7 @@ l.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) var/rads = 500 * sqrt( 1 / (get_dist(l, src) + 1) ) l.apply_effect(rads, IRRADIATE, 0) // Permit blocking + + +/obj/machinery/power/supermatter/blob_act() + explode() diff --git a/icons/mob/blob.dmi b/icons/mob/blob/blob.dmi similarity index 100% rename from icons/mob/blob.dmi rename to icons/mob/blob/blob.dmi diff --git a/icons/mob/blob/blob_64x64.dmi b/icons/mob/blob/blob_64x64.dmi new file mode 100644 index 00000000000..0576d77af9a Binary files /dev/null and b/icons/mob/blob/blob_64x64.dmi differ diff --git a/icons/mob/blob/blob_AME.dmi b/icons/mob/blob/blob_AME.dmi new file mode 100644 index 00000000000..d1a9c064bfb Binary files /dev/null and b/icons/mob/blob/blob_AME.dmi differ diff --git a/icons/mob/blob/blob_honkscape.dmi b/icons/mob/blob/blob_honkscape.dmi new file mode 100644 index 00000000000..d381b743a9d Binary files /dev/null and b/icons/mob/blob/blob_honkscape.dmi differ diff --git a/icons/mob/blob_64x64.dmi b/icons/mob/blob_64x64.dmi deleted file mode 100644 index b9dbf6cff9e..00000000000 Binary files a/icons/mob/blob_64x64.dmi and /dev/null differ diff --git a/vgstation13.dme b/vgstation13.dme index 50c3f433eed..4646a85fbff 100644 --- a/vgstation13.dme +++ b/vgstation13.dme @@ -300,6 +300,7 @@ #include "code\game\gamemodes\setupgame.dm" #include "code\game\gamemodes\steal_items.dm" #include "code\game\gamemodes\autotraitor\autotraitor.dm" +#include "code\game\gamemodes\blob\_blob_defines.dm" #include "code\game\gamemodes\blob\blob.dm" #include "code\game\gamemodes\blob\blob_finish.dm" #include "code\game\gamemodes\blob\blob_report.dm"