Bee fixes and updates!

* Added the ability to make Apiaries and Honey frames with wood
* Added the ability to make Royal Bee Jelly from 10 Mutagen and 40 Honey
* Added the ability to make more Queen Bees from Royal Bee Jelly by using it on an existing Queen, to split her into two Queens
* Made homeless bees more obvious
* Fixed a typo that made almost all bees homeless, severely reducing the odds of getting honeycomb
* Made bee progress reports (50% towards new honeycomb, etc.) always show, even if it's 0%
* Made some feedback text more obvious
* Fixed being able to duplicate the bee holder object, this was not exploity, just weird
* Fixed being able to put two (or more) queens in the same apiary
* Fixed some runtimes from hydro code assuming a plant gene exists
* Fixed runtime when you use a honeycomb in your hand
* It now takes and uses 5u of a reagent to give a bee that reagent
* Removed unused icon file
This commit is contained in:
Remie Richards
2016-03-27 21:07:53 +01:00
parent c6e08b3449
commit 17defb66d4
8 changed files with 80 additions and 22 deletions
@@ -114,6 +114,8 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \
new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\
new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\
)
/obj/item/stack/sheet/mineral/wood
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

+17 -9
View File
@@ -123,19 +123,22 @@
..()
if(!queen_bee)
user << "<span class='warning'>There is no queen bee!</span>"
user << "<span class='warning'>There is no queen bee! There won't bee any honeycomb without a queen!</span>"
var/half_bee = get_max_bees()*0.5
if(half_bee && (bees.len >= half_bee))
user << "This place is a BUZZ with activity..."
user << "<span class='notice'>This place is a BUZZ with activity... there are lots of bees!</span>"
if(bee_resources)
user << "[bee_resources]/100 resource supply."
user << "[bee_resources]% towards a new honeycomb."
user << "[bee_resources*2]% towards a new bee."
user << "<span class='notice'>[bee_resources]/100 resource supply.</span>"
user << "<span class='notice'>[bee_resources]% towards a new honeycomb.</span>"
user << "<span class='notice'>[bee_resources*2]% towards a new bee.</span>"
if(honeycombs.len)
var/plural = honeycombs.len > 1
user << "<span class='notice'>There [plural? "are" : "is"] [honeycombs.len] uncollected honeycomb[plural ? "s":""] in the apiary.</span>"
if(honeycombs.len >= get_max_honeycomb())
user << "there's no room for more honeycomb!"
user << "<span class='warning'>there's no room for more honeycomb!</span>"
/obj/structure/beebox/attackby(obj/item/I, mob/user, params)
@@ -154,6 +157,10 @@
return
if(istype(I, /obj/item/queen_bee))
if(queen_bee)
user << "<span class='warning'>This hive already has a queen!</span>"
return
var/obj/item/queen_bee/qb = I
user.unEquip(qb)
@@ -223,10 +230,10 @@
fallen++
if(fallen)
var/multiple = fallen > 1
visible_message("<span class='notice'>[user] scapes [multiple ? "[fallen]" : "a"] honeycomb[multiple ? "s" : ""] off of the frame.</span>")
visible_message("<span class='notice'>[user] scrapes [multiple ? "[fallen]" : "a"] honeycomb[multiple ? "s" : ""] off of the frame.</span>")
if("Remove the Queen Bee")
if(!queen_bee)
if(!queen_bee || queen_bee.loc != src)
user << "<span class='warning'>There is no queen bee to remove!</span>"
return
var/obj/item/queen_bee/QB = new()
@@ -237,3 +244,4 @@
if(!user.put_in_active_hand(QB))
QB.loc = get_turf(src)
visible_message("<span class='notice'>[user] removes the queen from the apiary.</span>")
queen_bee = null
@@ -4,7 +4,7 @@
desc = "a hexagonal mesh of honeycomb"
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "honeycomb"
possible_transfer_amounts = null
possible_transfer_amounts = list()
spillable = 0
disease_amount = 0
volume = 10
+10 -5
View File
@@ -166,29 +166,34 @@
if(yield <= 0 && plant_type == PLANT_MUSHROOM)
yield = 1 // Mushrooms always have a minimum yield of 1.
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield)
C.value = yield
if(C)
C.value = yield
/obj/item/seeds/proc/adjust_lifespan(adjustamt)
lifespan = Clamp(lifespan + adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan)
C.value = lifespan
if(C)
C.value = lifespan
/obj/item/seeds/proc/adjust_endurance(adjustamt)
endurance = Clamp(endurance + adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance)
C.value = endurance
if(C)
C.value = endurance
/obj/item/seeds/proc/adjust_production(adjustamt)
if(yield != -1)
production = Clamp(production + adjustamt, 2, 10)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production)
C.value = production
if(C)
C.value = production
/obj/item/seeds/proc/adjust_potency(adjustamt)
if(potency != -1)
potency = Clamp(potency + adjustamt, 0, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency)
C.value = potency
if(C)
C.value = potency
/obj/item/seeds/proc/get_analyzer_text() //in case seeds have something special to tell to the analyzer
@@ -75,6 +75,13 @@
..()
/mob/living/simple_animal/hostile/poison/bees/examine(mob/user)
..()
if(!beehome)
user << "<span class='warning'>This bee is homeless!</span>"
/mob/living/simple_animal/hostile/poison/bees/proc/generate_bee_visuals()
overlays.Cut()
@@ -228,7 +235,7 @@
/mob/living/simple_animal/hostile/poison/bees/proc/reagent_incompatible(mob/living/simple_animal/hostile/poison/bees/B)
if(!B)
return 0
if(B.beegent && beegent && B.beegent.id != beegent.id || B.beegent && beegent || !B.beegent && beegent)
if(B.beegent && beegent && B.beegent.id != beegent.id || B.beegent && !beegent || !B.beegent && beegent)
return 1
return 0
@@ -245,11 +252,26 @@
/obj/item/queen_bee/attackby(obj/item/I, mob/user, params)
if(istype(I,/obj/item/weapon/reagent_containers/syringe))
var/obj/item/weapon/reagent_containers/syringe/S = I
var/datum/reagent/R = chemical_reagents_list[S.reagents.get_master_reagent_id()]
if(R)
queen.assign_reagent(R)
user.visible_message("<span class='warning'>[user] injects [src]'s genome with [R.name], mutating it's DNA!</span>","<span class='warning'>You inject [src]'s genome with [R.name], mutating it's DNA!</span>")
name = queen.name
if(S.reagents.has_reagent("royal_bee_jelly")) //checked twice, because I really don't want royal bee jelly to be duped
if(S.reagents.has_reagent("royal_bee_jelly",5))
S.reagents.remove_reagent("royal_bee_jelly", 5)
var/obj/item/queen_bee/qb = new(get_turf(user))
qb.queen = new(qb)
if(queen && queen.beegent)
qb.queen.assign_reagent(queen.beegent) //Bees use the global singleton instances of reagents, so we don't need to worry about one bee being deleted and her copies losing their reagents.
user.put_in_active_hand(qb)
user.visible_message("<span class='notice'>[user] injects [src] with royal bee jelly, causing it to split into two bees, MORE BEES!</span>","<span class ='warning'>You inject [src] with royal bee jelly, causing it to split into two bees, MORE BEES!</span>")
else
user << "<span class='warning'>You don't have enough royal bee jelly to split a bee in two!</span>"
else
var/datum/reagent/R = chemical_reagents_list[S.reagents.get_master_reagent_id()]
if(R && S.reagents.has_reagent(R.id, 5))
S.reagents.remove_reagent(R.id,5)
queen.assign_reagent(R)
user.visible_message("<span class='warning'>[user] injects [src]'s genome with [R.name], mutating it's DNA!</span>","<span class='warning'>You inject [src]'s genome with [R.name], mutating it's DNA!</span>")
name = queen.name
else
user << "<span class='warning'>You don't have enough units of that chemical to modify the bee's DNA!</span>"
..()
@@ -260,4 +282,5 @@
/obj/item/queen_bee/Destroy()
qdel(queen)
return ..()
return ..()
@@ -1187,3 +1187,16 @@ datum/reagent/shadowling_blindness_smoke
M.adjustToxLoss(-2, 0)
. = 1
return ..() || .
/datum/reagent/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"
description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees."
color = "#00ff80"
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/M)
if(prob(2))
M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz..."))
..()
@@ -510,3 +510,10 @@
result = "lye"
required_reagents = list("ash" = 1, "water" = 1)
result_amount = 2
/datum/chemical_reaction/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"
result = "royal_bee_jelly"
required_reagents = list("mutagen" = 10, "honey" = 40)
result_amount = 5