-
Notifications
You must be signed in to change notification settings - Fork 14
add: lavaland boss "Robot Hare" [WIP] #742
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| #define BOSS_MEDAL_ROBOTHARE "Robot Hares Killed" | ||
| #define BOSS_MEDAL_ROBOTHARE_CRUSHER "Robot Hares Killed" | ||
| #define ROBOTHARE_SCORE "Robot Hares Killed" | ||
|
|
||
| /datum/award/achievement/boss/robothare_kill | ||
| name = "Robot Hare Killer" | ||
| desc = "Machine that likes eats carrot and you too." | ||
| database_id = "BOSS_MEDAL_ROBOTHARE" | ||
| icon_state = "robothare" | ||
|
|
||
| /datum/award/achievement/boss/robothare_crusher | ||
| name = "Robot Hare Crusher" | ||
| desc = "Metal machine. We are all in." | ||
| database_id = BOSS_MEDAL_ROBOTHARE_CRUSHER | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Т.е. оно будет по одному и тому же ключу суммировать это? если смотреть по Или это сделано намерено? Тогда почему они имеют один и тот же текст, если хватило бы 1 дефайна? |
||
| icon_state = "robothare" | ||
|
|
||
| /datum/award/score/robothare_score | ||
| name = "Robot Hares Killed" | ||
| desc = "You've killed HOW many?" | ||
| database_id = ROBOTHARE_SCORE | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,47 @@ | ||||||||||||||||||||||||||||||
| /obj/structure/closet/crate/large/soviet | ||||||||||||||||||||||||||||||
| name = "green large crate" | ||||||||||||||||||||||||||||||
| desc = "A deeply scratched wooden crate with erased markings. You'll need a crowbar to get it open." | ||||||||||||||||||||||||||||||
| icon = 'modular_celadon/modules/robot_hare_boss/icons/crates.dmi' | ||||||||||||||||||||||||||||||
| icon_state = "largecrate_soviet" | ||||||||||||||||||||||||||||||
| base_icon_state = "largecrate_soviet" | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| /** | ||||||||||||||||||||||||||||||
| * Robot Hare Loot Crate | ||||||||||||||||||||||||||||||
| * Contains useful robotics and electronics components | ||||||||||||||||||||||||||||||
| */ | ||||||||||||||||||||||||||||||
| /obj/structure/closet/crate/necropolis/robothare | ||||||||||||||||||||||||||||||
| name = "robotic containment crate" | ||||||||||||||||||||||||||||||
| desc = "A reinforced crate containing salvaged parts from the defeated Robot Hare." | ||||||||||||||||||||||||||||||
| icon_state = "robust" | ||||||||||||||||||||||||||||||
| base_icon_state = "robust" | ||||||||||||||||||||||||||||||
| resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF | ||||||||||||||||||||||||||||||
| can_install_electronics = FALSE | ||||||||||||||||||||||||||||||
| paint_jobs = null | ||||||||||||||||||||||||||||||
| can_weld_shut = FALSE | ||||||||||||||||||||||||||||||
|
Comment on lines
+12
to
+20
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. В твоем случае достаточно переопределить только это
Comment on lines
+12
to
+20
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| /obj/structure/closet/crate/necropolis/robothare/PopulateContents() | ||||||||||||||||||||||||||||||
| var/loot = rand(1, 5) | ||||||||||||||||||||||||||||||
| switch(loot) | ||||||||||||||||||||||||||||||
| if(1) | ||||||||||||||||||||||||||||||
| new /obj/item/dnainjector/shock(src) | ||||||||||||||||||||||||||||||
| if(2) | ||||||||||||||||||||||||||||||
| new /obj/item/clothing/under/costume/soviet(src) | ||||||||||||||||||||||||||||||
| new /obj/item/clothing/head/costume/ushanka(src) | ||||||||||||||||||||||||||||||
| if(3) | ||||||||||||||||||||||||||||||
| new /obj/item/gun/ballistic/automatic/pistol(src) | ||||||||||||||||||||||||||||||
| if(4) | ||||||||||||||||||||||||||||||
| new /obj/item/food/grown/carrot(src, 33) // carrotisole u got while fight, dont get it? | ||||||||||||||||||||||||||||||
| if(5) | ||||||||||||||||||||||||||||||
| new /obj/item/storage/toolbox/syndicate(src) | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| /** | ||||||||||||||||||||||||||||||
| * Crusher variant - bonus loot for defeating without taking damage (or minimal damage) | ||||||||||||||||||||||||||||||
| */ | ||||||||||||||||||||||||||||||
| /obj/structure/closet/crate/necropolis/robothare/crusher | ||||||||||||||||||||||||||||||
| name = "robotic containment crate (pristine)" | ||||||||||||||||||||||||||||||
| desc = "A reinforced crate containing pristine parts from the Robot Hare, barely damaged." | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| /obj/structure/closet/crate/necropolis/robothare/crusher/PopulateContents() | ||||||||||||||||||||||||||||||
| ..() | ||||||||||||||||||||||||||||||
| // Bonus: trophy and rare component | ||||||||||||||||||||||||||||||
| new /obj/item/crusher_trophy/robot_hare_hand(src) | ||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| /** | ||
| * Lightning Bolt Projectile Attack Action | ||
| */ | ||
| /datum/action/cooldown/mob_cooldown/projectile_attack/lightning_bolt | ||
| name = "Lightning Bolt" | ||
| button_icon = 'modular_celadon/modules/robot_hare_boss/icons/actions_items.dmi' | ||
| button_icon_state = "lightning_action" | ||
| desc = "Fires a lightning bolt at the target." | ||
| cooldown_time = 3 SECONDS | ||
| projectile_type = /obj/projectile/lightning_bolt | ||
| projectile_sound = 'sound/effects/magic/lightningbolt.ogg' | ||
|
|
||
| /datum/action/cooldown/mob_cooldown/projectile_attack/lightning_bolt/Activate(atom/target_atom) | ||
| . = ..() | ||
| if(owner) | ||
| playsound(owner, 'sound/effects/chemistry/shockwave_explosion.ogg', 100, TRUE) | ||
| owner.visible_message(span_danger("[owner] fires lightning bolt!")) | ||
| new /obj/effect/temp_visual/dir_setting/firing_effect(owner.loc, owner.dir) | ||
|
|
||
| /** | ||
| * Action to fold or unfold boss | ||
| */ | ||
| /datum/action/cooldown/fold_unfold | ||
| name = "Fold/Unfold" | ||
| button_icon = 'modular_celadon/modules/robot_hare_boss/icons/actions_items.dmi' | ||
| button_icon_state = "fold_unfold" | ||
| desc = "Fold or Unfold yourself" | ||
| cooldown_time = 60 SECONDS | ||
| click_to_activate = FALSE | ||
|
|
||
| /datum/action/cooldown/fold_unfold/Activate(atom/target_atom) | ||
| . = ..() | ||
| if(owner) | ||
| playsound(owner, 'sound/machines/blastdoor.ogg', 100, TRUE) | ||
| SEND_SIGNAL(owner, COMSIG_ROBOT_FOLD_UNFOLD_STARTED) | ||
|
|
||
|
|
||
| /** | ||
| * Telescopic arm Attack Action | ||
| */ | ||
| /datum/action/cooldown/mob_cooldown/projectile_attack/telescopic_arm | ||
| name = "Telescopic Arm" | ||
| button_icon = 'modular_celadon/modules/robot_hare_boss/icons/actions_items.dmi' | ||
| button_icon_state = "telescopic_arm" | ||
| desc = "Fires a extendo-arm at the target." | ||
| cooldown_time = 10 SECONDS | ||
| projectile_type = /obj/projectile/telescopic_arm | ||
| projectile_sound = 'sound/items/weapons/slam.ogg' | ||
|
|
||
|
|
||
| /** | ||
| * Telescopic arm attack | ||
| */ | ||
| /obj/projectile/telescopic_arm | ||
| name = "hand" | ||
| icon_state = "hand" | ||
| icon = 'modular_celadon/modules/robot_hare_boss/icons/telescopic_arm.dmi' | ||
| pass_flags = PASSTABLE | ||
| damage = 20 | ||
| stamina = 20 | ||
| armour_penetration = 60 | ||
| damage_type = BRUTE | ||
| hitsound = 'sound/items/weapons/genhit2.ogg' | ||
| /// You got hit by extendo arm, the bigger one! | ||
| var/datum/beam/initial_arm | ||
| var/chain_icon = 'modular_celadon/modules/robot_hare_boss/icons/telescopic_arm.dmi' | ||
|
|
||
| /obj/projectile/telescopic_arm/fire(setAngle) | ||
| if(firer) | ||
| initial_arm = firer.Beam(src, icon_state = "chain", icon = chain_icon, emissive = FALSE) | ||
| return ..() | ||
|
|
||
| /obj/projectile/telescopic_arm/on_hit(atom/target, blocked = 0, pierce_hit) | ||
| . = ..() | ||
| if(!ismovable(target)) | ||
| return | ||
|
|
||
| if(!isliving(target)) | ||
| return | ||
| var/mob/living/designated_target = target | ||
| designated_target.visible_message(span_danger("[designated_target] is hit by [firer]'s arm!")) | ||
| designated_target.apply_damage(30, BRUTE) | ||
|
|
||
| /obj/projectile/telescopic_arm/Destroy(force) | ||
| QDEL_NULL(initial_arm) | ||
| return ..() | ||
|
|
||
|
|
||
| /** | ||
| * Lightning Bolt Projectile | ||
| * Fires electrical bolts that deal brute and burn damage with a chance to stun | ||
| */ | ||
| /obj/projectile/lightning_bolt | ||
| name = "lightning bolt" | ||
| icon = 'modular_celadon/modules/robot_hare_boss/icons/projectiles.dmi' | ||
| icon_state = "electric_shock_bolt" | ||
| damage = 20 | ||
| armour_penetration = 30 | ||
| speed = 1 | ||
| damage_type = BRUTE | ||
| var/stun_chance = 30 | ||
| var/burn_damage = 15 | ||
| var/emp_radius = 1 // do not forget about rage state | ||
|
|
||
| /obj/projectile/lightning_bolt/on_hit(atom/target, blocked = 0, pierce_hit) | ||
| . = ..() | ||
| if(isliving(target) && !blocked) | ||
| var/mob/living/living_target = target | ||
| // Apply burn damage | ||
| living_target.adjust_fire_loss(burn_damage) | ||
| // Apply emp damage | ||
| empulse(target, emp_radius, emp_radius, emp_source = src) | ||
| // Chance to stun (electrocution) | ||
| if(prob(stun_chance)) | ||
| living_target.Paralyze(20, FALSE) | ||
| living_target.Stun(10, FALSE) | ||
|
Comment on lines
+115
to
+116
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Можно было вынести это тоже в /var |
||
| to_chat(living_target, span_userdanger("You're electrocuted by the lightning!")) | ||
|
|
||
| // Visual and sound effects | ||
| playsound(get_turf(src), 'sound/effects/magic/lightningbolt.ogg', 100, TRUE) | ||
|
|
||
| // Create electrical effect at hit location | ||
| var/turf/hit_turf = get_turf(src) | ||
| if(hit_turf) | ||
| new /obj/effect/temp_visual/lightning_strike(hit_turf) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| /datum/map_template/ruin/lavaland/soviet_space_ship | ||
| name = "Crashed soviet space ship" | ||
| id = "soviet_space_ship" | ||
| description = "A soviet space ship named Progress. It falls on Lavaland a long time ago." | ||
| prefix = "_maps/RandomRuins/LavaRuins/ss1984/" | ||
| suffix = "soviet.dmm" | ||
| always_place = TRUE | ||
| allow_duplicates = FALSE | ||
|
|
||
| /area/ruin/soviet_space_ship | ||
| name = "Soviet space ship" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно было сделать модульно
/mob/livingvar/health_doll_icon_fileПо умолчанию =
icons/hud/screen_gen.dmiДля
/mob/living/simple_animal/hostile/megafauna/robothare=
'modular_celadon/modules/robot_hare_boss/icons/screen_gen.dmi'