rabbit drops

This commit is contained in:
Lord Cambion
2026-03-16 10:59:16 +01:00
parent 7a77344d66
commit 04f1e2fdd9
7 changed files with 43 additions and 4 deletions
+2
View File
@@ -23,6 +23,8 @@ FurnaceRecipes::FurnaceRecipes()
addFurnaceRecipy(Tile::sand_Id, new ItemInstance(Tile::glass), .1f);
addFurnaceRecipy(Item::porkChop_raw_Id, new ItemInstance(Item::porkChop_cooked), .35f);
addFurnaceRecipy(Item::beef_raw_Id, new ItemInstance(Item::beef_cooked), .35f);
addFurnaceRecipy(Item::rabbit_raw_Id, new ItemInstance(Item::rabbit_cooked), .35f);
addFurnaceRecipy(Item::mutton_raw_Id, new ItemInstance(Item::mutton_cooked), .35f);
addFurnaceRecipy(Item::chicken_raw_Id, new ItemInstance(Item::chicken_cooked), .35f);
addFurnaceRecipy(Item::fish_raw_Id, new ItemInstance(Item::fish_cooked), .35f);
addFurnaceRecipy(Tile::cobblestone_Id, new ItemInstance(Tile::stone), .1f);
+9 -1
View File
@@ -260,6 +260,10 @@ Item* Item::door_dark = nullptr;
//TU31
Item* Item::mutton_raw = nullptr;
Item* Item::mutton_cooked = nullptr;
Item* Item::rabbit_raw = nullptr;
Item* Item::rabbit_cooked = nullptr;
Item* Item::rabbits_foot = nullptr;
Item* Item::rabbit_hide = nullptr;
Item* Item::armor_stand = nullptr;
void Item::staticCtor()
@@ -507,6 +511,8 @@ void Item::staticCtor()
Item::mutton_raw = (new FoodItem(167, 2, FoodConstants::FOOD_SATURATION_LOW, true))->setIconName(L"muttonRaw")->setDescriptionId(IDS_ITEM_BEEF_RAW)->setUseDescriptionId(IDS_DESC_BEEF_RAW);
Item::mutton_cooked = (new FoodItem(168, 8, FoodConstants::FOOD_SATURATION_NORMAL, true))->setIconName(L"muttonCooked")->setDescriptionId(IDS_ITEM_BEEF_COOKED)->setUseDescriptionId(IDS_DESC_BEEF_COOKED);
Item::rabbit_raw = (new FoodItem(155, 1.8, FoodConstants::FOOD_SATURATION_NORMAL, true))->setIconName(L"rabbitRaw")->setDescriptionId(IDS_ITEM_BEEF_RAW)->setUseDescriptionId(IDS_DESC_BEEF_RAW);
Item::rabbit_cooked = (new FoodItem(156, 5, FoodConstants::FOOD_SATURATION_NORMAL, true))->setIconName(L"rabbitCooked")->setDescriptionId(IDS_ITEM_BEEF_RAW)->setUseDescriptionId(IDS_DESC_BEEF_RAW);
Item::door_spruce = (new DoorItem(171, Material::wood, L"doorSpruce"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorSpruce")->setDescriptionId(IDS_ITEM_DOOR_SPRUCE)->setUseDescriptionId(IDS_DESC_DOOR_WOOD);
Item::door_birch = (new DoorItem(172, Material::wood, L"doorBirch"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorBirch")->setDescriptionId(IDS_ITEM_DOOR_BIRCH)->setUseDescriptionId(IDS_DESC_DOOR_WOOD);
@@ -514,7 +520,9 @@ void Item::staticCtor()
Item::door_acacia = (new DoorItem(174, Material::wood, L"doorAcacia"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorAcacia")->setDescriptionId(IDS_ITEM_DOOR_ACACIA)->setUseDescriptionId(IDS_DESC_DOOR_WOOD);
Item::door_dark = (new DoorItem(175, Material::wood, L"doorDark"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorDark")->setDescriptionId(IDS_ITEM_DOOR_DARK)->setUseDescriptionId(IDS_DESC_DOOR_WOOD);
Item::rabbit_hide = ( new Item(159) ) ->setIconName(L"rabbitHide")->setDescriptionId(IDS_ITEM_LEATHER)->setUseDescriptionId(IDS_DESC_LEATHER);
Item::rabbits_foot = ( new Item(158) ) ->setIconName(L"rabbitsFoot")->setDescriptionId(IDS_ITEM_LEATHER)->setUseDescriptionId(IDS_DESC_LEATHER);
Item::armor_stand = (new ArmorStandItem(160))->setBaseItemTypeAndMaterial(eBaseItemType_undefined, eMaterial_undefined)->setIconName(L"armorStand")->setDescriptionId(IDS_ITEM_ARMOR_STAND)->setUseDescriptionId(IDS_DESC_ARMOR_STAND);
}
+8
View File
@@ -425,6 +425,10 @@ public:
//TU31
static Item* mutton_raw;
static Item* mutton_cooked;
static Item* rabbit_raw;
static Item* rabbit_cooked;
static Item* rabbit_hide;
static Item* rabbits_foot;
static Item* armor_stand;
@@ -646,6 +650,10 @@ public:
//TU31
static const int mutton_raw_Id = 423;
static const int mutton_cooked_Id = 424;
static const int rabbit_raw_Id = 411;
static const int rabbit_cooked_Id = 412;
static const int rabbits_foot_Id = 414;
static const int rabbit_hide_Id = 415;
static const int armor_stand_Id = 416;
public:
+15
View File
@@ -70,7 +70,22 @@ bool Rabbit::useNewAi() {
return true;
}
void Rabbit::dropDeathLoot(bool wasKilledByPlayer, int lootingLevel) {
int meatCount = random->nextInt(2) + random->nextInt(lootingLevel + 1);
int meatId = isOnFire() ? Item::rabbit_cooked_Id : Item::rabbit_raw_Id;
spawnAtLocation(meatId, meatCount);
int hideCount = random->nextInt(2) + random->nextInt(lootingLevel + 1);
spawnAtLocation(Item::rabbit_hide_Id, hideCount);
float footChance = 0.10f + (0.03f * lootingLevel);
if (wasKilledByPlayer && random->nextFloat() < footChance) {
spawnAtLocation(Item::rabbits_foot_Id, 1);
}
}
void Rabbit::tick() {
Animal::tick();
+1
View File
@@ -47,6 +47,7 @@ protected:
virtual int getHopSound() ;
virtual float getSoundVolume() override { return 0.6f; }
virtual bool makeStepSound() override { return true; }
virtual void dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel) override;
public:
virtual bool isFood(shared_ptr<ItemInstance> item) override;