diff --git a/data/json/items/armor.json b/data/json/items/armor.json index ab36880d4a958..58146d0d1fa05 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -3180,7 +3180,6 @@ "coverage": 20, "material_thickness": 1, "environmental_protection": 1, - "use_action": { "type": "firestarter", "moves": 1000, "moves_slow": 25000, "need_sunlight": true }, "flags": [ "SUPER_FANCY", "FIX_NEARSIGHT" ] }, { diff --git a/data/json/terrain.json b/data/json/terrain.json index a3cd1cafbe475..2730f2880eca4 100644 --- a/data/json/terrain.json +++ b/data/json/terrain.json @@ -363,7 +363,7 @@ "symbol": "#", "color": "brown", "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE" ], + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE" ], "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100 }, "examine_action": "dirtmound" }, diff --git a/src/game.cpp b/src/game.cpp index 14ee6ddd137fa..ab1ebd98da5be 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -10275,7 +10275,8 @@ bool game::plmove( int dx, int dy, int dz ) if( u.weapon.ammo_sufficient() ) { turns = MINUTES( 30 ); u.weapon.ammo_consume( u.weapon.ammo_required(), u.pos() ); - u.assign_activity( activity_id( "ACT_JACKHAMMER" ), turns, -1, u.get_item_position( &u.weapon ) ); + u.assign_activity( activity_id( "ACT_JACKHAMMER" ), turns * 100, -1, + u.get_item_position( &u.weapon ) ); u.activity.placement = dest_loc; add_msg( _( "You start breaking the %1$s with your %2$s." ), m.tername( dest_loc ).c_str(), u.weapon.tname().c_str() ); diff --git a/src/player.cpp b/src/player.cpp index d44bb81389f19..e7a9ee9b1d570 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -9454,7 +9454,7 @@ bool player::read( int inventory_position, const bool continuous ) } for( player *elem : apply_morale ) { //Fun bonuses for spritual and To Serve Man are no longer calculated here. - elem->add_morale( MORALE_BOOK, 0, book_fun_for( it, *elem ) * 15, decay_start + 3_minutes, + elem->add_morale( MORALE_BOOK, book_fun_for( it, *elem ) * 5, book_fun_for( it, *elem ) * 15, decay_start + 3_minutes, decay_start, false, it.type ); } @@ -9539,7 +9539,7 @@ void player::do_read( item &book ) if( book_fun_for( book, *learner ) != 0 ) { //Fun bonus is no longer calculated here. - learner->add_morale( MORALE_BOOK, 0, book_fun_for( book, *learner ) * 5, 6_minutes, 3_minutes, true, + learner->add_morale( MORALE_BOOK, book_fun_for( book, *learner ) * 5, book_fun_for( book, *learner ) * 15, 6_minutes, 3_minutes, true, book.type ); } diff --git a/src/ranged.cpp b/src/ranged.cpp index aa5c820a5e73f..5f91f364bfe7c 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -295,6 +295,10 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) // apply delayed recoil recoil += delay; + // Reset aim for bows and other reload-and-shoot weapons. + if( gun.has_flag( "RELOAD_AND_SHOOT" ) ) { + recoil = MAX_RECOIL; + } // Cap recoil = std::min( MAX_RECOIL, recoil ); diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index ea4ed4bce82fe..7284873f661b0 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -1022,7 +1022,7 @@ void vehicle::operate_planter() //then don't put the item there. break; } else if( g->m.ter( loc ) == t_dirtmound ) { - g->m.furn_set( loc, f_plant_seed ); + g->m.set( loc, t_dirt, f_plant_seed ); } else if( !g->m.has_flag( "DIGGABLE", loc ) ) { //If it isn't diggable terrain, then it will most likely be damaged. damage( planter_id, rng( 1, 10 ), DT_BASH, false );