Secret of the Ancients (2012) – why leave them here?

Note – this has significant spoilers for the Secret of the Ancients campaign.

Secret of the Ancients has some really interesting ideas and lots of detail but some serious flaws also. However, among the unbelievably coincidental timings, forced plot choices and repeatedly stripping away all of the PCs’ gear, there is a serious question.

In the closing paragraphs of Chapter 4, the ship that the PCs are on:

In Chapter 5, page 91, we learn that:

Then in Chapter 7 when the characters finally succeed in getting into orbit they:

What is the in-game reason for the PCs arriving there? It beats being stuck in deep space with no way to reach an inhabited system or be rescued, but otherwise it is the worst possible location because it is where their enemies are waiting for them. Note that I am not looking for game design reasons for this occurrence, which I understand, I am looking for a plausible in-game rationale.

How to target all woocommerce categories that don’t have any subcategories in them?

I want to target all pages (product categories) that are displaying the products themselves.

My woocommerce settings set to show only categories/subcategories (unless there are none) and then by default the products grid is displayed on the page.

is_product_category() function doesn’t help since it also targets the parent categories which don’t have direct products in them.

Most of my categories that don’t any subcategories in them are grandchildren categories if it matters for the answer.

How can I achieve it and to use it in woocommerce hooks?

Can one PC grab another PC and drag them?

While DMing my session today, I encountered a situation I wasn’t sure how to answer. The PCs were attacked by a werewolf and decided to flee onto their nearby horses. Two of them were already mounted and two of them were on foot. One player on the ground (a wizard) attempted to cast a spell on the werewolf and failed. He then moved closer to the mounts but couldn’t make it with his speed. After a few turns it was the barbarian’s turn. The barbarian wanted to drag the wizard with him and plop the wizard onto a horse and then mount with his remaining movement speed.

I wasn’t sure quite how to handle it, so I made a compromise. I allowed the barbarian to drag the wizard. However, because the rules specifically state that it takes half of a character’s movement to mount, I wouldn’t allow the barbarian to force the wizard to mount. However, if the barbarian wanted to, he could mount the horse himself as he had enough remaining movement.

The reason I allowed the barbarian to drag the wizard is because of the lifting, dragging, and pushing rules in chapter 7 of the Player’s Handbook. The barbarian had more than enough strength to push our tiny, lightweight wizard around.

I’m not really sure if I handled it right at all. I’m not entirely sure that those rules apply to living beings, especially living beings that can move. I would really appreciate some advice on whether or not players can drag other players after their (the player who is being dragged) turn is over or if players can drag other players at all. If I recall correctly, I believe the wizard still had about 5′ of movement left, if it makes a difference.

Code to Update Prices and add them for Woocommerce Custom Product Variations Loop

I am actually struggling with some custom functions. Actually My aim is the following: Create 2 custom fields in a woocommerce variable product backend ✔ Show these custom fields text and prices in frontend Make able to add the product in the cart with these prices summed up.

I don’t know which hook I am using wrong and why the theme ajax doesn’t work. There is someone that can assist?

"Working" (I hope) Code

// Aggiunte campi asseverazione, legalizzazione Variazioni nel backend add_action( 'woocommerce_variation_options_pricing', 'add_variation_options_pricing_assev', 10, 3 ); function add_variation_options_pricing_assev( $  loop, $  variation_data, $  variation ){      woocommerce_wp_text_input( array(         'id' => '_assev_'.$  loop,         'wrapper_class' => 'form-row form-row-first',         'class' => 'short wc_input_price',         'label' => __( 'Asseverazione', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',         'value' => wc_format_localized_price( get_post_meta( $  variation->ID, '_assev', true ) ),         'data_type' => 'price',     ) );     woocommerce_wp_text_input( array(         'id' => '_legal_'.$  loop,         'wrapper_class' => 'form-row form-row-last',         'class' => 'short wc_input_price',         'label' => __( 'Legalizzazione', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',         'value' => wc_format_localized_price( get_post_meta( $  variation->ID, '_legal', true ) ),         'data_type' => 'price',     ) );      }  // Salvataggio in backend add_action( 'woocommerce_save_product_variation','save_variation_options_pricing_assev', 10, 2 ); function save_variation_options_pricing_assev( $  variation_id, $  loop ){     if( isset($  _POST['_assev_'.$  loop]))         update_post_meta( $  variation_id, '_assev', wc_clean( wp_unslash( str_replace( ',', '.', $  _POST['_assev_'.$  loop] ) ) ) );     if( isset($  _POST['_legal_'.$  loop]))         update_post_meta( $  variation_id, '_legal', wc_clean( wp_unslash( str_replace( ',', '.', $  _POST['_legal_'.$  loop] ) ) ) ); }  // Frontend (mi manca di aggiungere la legalizzazione) add_filter( 'woocommerce_available_variation', 'display_variation_assev', 10, 3 );  function display_variation_assev( $  data, $  product, $  variation ) {      if( $  assev = $  variation->get_meta('_assev') ) {         $  data['price_html'] = '<div class="woocommerce_assev">' . __( 'Asseverazione: ', 'woocommerce' ) .         '<span class="asseverazione-prezzo">' . wc_price( $  assev ) . '</span></div>' . $  data['price_html'];     }      return $  data; } 

Code Struggle:

/*add_filter( 'woocommerce_add_cart_item', 'aggiorna_prezzi_nuova', 10, 2 ); function aggiorna_prezzi_nuova( $  cart_item_data, $  cart_item_key, $  variation) {                if( isset( $  _POST['_assev_'][$  variation_id] ) )         $  cart_item_data['_assev'][$  variation_id] = $  _POST['_assev'][$  variation_id];     if(isset( $  _POST['_legal'] ) )        $  cart_item_data['_legal'] = $  _POST['_legal'];      return $  cart_item_data; }   add_action( 'woocommerce_before_calculate_totals', 'fissa_valore_var_carrello', 20, 1 ); function fissa_valore_var_carrello( $  cart ) {     if ( is_admin() && ! defined( 'DOING_AJAX' ) )         return;      if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )         return;      // First loop to check if product 11 is in cart     foreach ( $  cart->get_cart() as $  cart_item ){         if( isset($  cart_item['_assev']) && isset($  cart_item['_legal'])          && ! empty($  cart_item['_assev']) && ! empty($  cart_item['_legal']) )             $  cart_item['data']->set_price( '30' );     } }*/ 

Other non functional code:

function aggiorna_prezzo( $  price, $  product ) {         $  shortcost_first = get_post_meta( $  variation->id, '_assev_0', true );    $  shortcost_mid = get_post_meta( $  product->id, '_assev_0', true );   $  shortcost_minimum = get_post_meta( $  product->id, 'assev_0', true );        $  unit_price = $  assev + $  shortcost_mid + $  shortcost_first + $  shortcost_minimum; //     +($  shortcost_mid * ($  shortcost_minimum - 1));    return $  price + $  unit_price;       } add_filter('woocommerce_get_price', 'aggiorna_prezzo', 10, 3); add_filter('woocommerce_get_regular_price','aggiorna_prezzo', 10, 3); add_filter('woocommerce_get_sale_price','aggiorna_prezzo', 10, 3); 

Thank you!

Can a person attuned to Living Gloves cast Remove Curse on themselves to remove them?

The living gloves (E:RftLW, pg. 278) have the feature Symbiotic Nature:

The gloves can’t be removed from you while you’re attuned to them, and you can’t voluntarily end your attunement to them. If you’re targeted by a spell that ends a curse, your attunement to the gloves ends, and they can be removed.

If I am attuned to the living gloves and know the spell remove curse, would casting remove curse on myself count as voluntarily ending my attunement to them?

This is a follow up to this question, wherein a process for achieving ready access to all artisan tool proficiencies is described using remove curse to unattune to the living gloves.

Does a creature under the effect of Motivational Speech still get advantage on their next attack if the spell ends for them?

The spell motivational speech (Acquisitions Incorporated, pg. 77) says:

For the duration, each affected creature gains 5 temporary hit points and has advantage on Wisdom saving throws. If an affected creature is hit by an attack, it has advantage on the next attack roll it makes. Once an affected creature loses the temporary hit points granted by this spell, the spell ends for that creature.

So when the effected creature is hit by an attack, the spell grants the creature advantage on their next attack. But getting hit by an attack is going to be accompanied by damage – and 5 points seems like it will very often be gone with a single attack.

Does a creature hit by an attack still get advantage on its next attack if that attack dealt 5 or more damage? Or does the spell end for them immediately and they do not get advantage on the next attack?

It just seems like this effect is going to be self-defeating a lot of the time – the thing that grants the advantage is the thing that takes it away. Am I missing something?

Note, temporary hitpoints are always lost first, so no holding on to them while subtracting damage from your standard hitpoint pool. Sorry Jim, it was a clever thought.

Is there a way to deal damage to a target without them knowing?

I’m playing a sneaky Poison Dusk Lizardfolk who dabbles a lot in poisons. I want to use a blowgun to inflict poisons on my targets, but I don’t want them to know they’ve been damaged. Basically, imagine someone walking down the road, and then suddenly being paralyzed. I know there’s rules for "sniping," or making a ranged attack and then hiding, but that doesn’t stop the opponent from knowing they’ve been damaged. It just stops them from finding who did it.

how to create user profile pages and display them based on users roles

Example: I have a website with 3 different user roles (amongst others): *developers *designers *contributors

I would like to have profile pages for users and would like to be able to display users on pages based (filtered) by their role. Hope this is clear. I have researched quite a few membership plugins and found that they are just bloated with features and ended up with TMI and no answers/solutions, so if you can help I would appreciate it. Do you know of any plugins suitable of doing that?

Thanx in advance

Bounty Boards: How to make them fair and make sense

So I wanted to create a new adventure hook I could use over many campaigns and figured, “Hmm, most medieval settings would have bounty boards set up in towns, offer prices for people willing to go out and deal with local problems”. Sooo I got out my Monster Manuel and Dungeon Masters Guide, and 2 hours searching online, and here’s my actual problem.

When sorted via challenge rating (DMG pg 136) monsters have their value set via the 5 different currencies which you roll to the d100 to determine which currency you reward players with. However, lets use Goblins (MM pg 165) and Kenku (MM pg 194)as the example. Both are CR 1/4, which places them on the Individual Treasure: Challenge 0-4. However, common sense would tell me the following:

Assume a town has a problem with Kenku and Goblins.

Kenku are known for their greed and will do anything to possess pretty things. While many beg, others steal or commit other crimes to earn such possessions. When you defeat a Kenku, it is logical to find gems, coins and possibly art objects in some form in its home whatever place it may be.

Goblins on the other hand are also motivated by greed, however their tendencies towards forming large groups or smaller packs prevents any 1 goblin from achieving a large amount for himself. However they have a tendency of training animals such as rats and wolves (or sometimes a Worg).

While a Kenku or even a group of kenku can cause quite the problem in a town, if there is a goblin problem, the town will often rather have the goblins taken care of over the Kenku. As such, on a Bounty Board a pair of goblin ears as proof would be worth more than a Kenku Beak as proof, despite them both being the same CR and belong to the same treasure Table.

So how can I make the Bounty Board both fair to the CR and make sense with the D&D Lore?

Is it less secure to force periodic user logouts vs keep them logged in?

I’ve been unable to find any research or information on this.

Google periodically signs me out and forces me to sign back in. I have multiple devices and multiple google accounts so it’s a bit frustrating but that’s just how it is. However I was thinking about whether this practice is actually secure.

  1. It seems to encourage easy-to-remember / easy-to-type passwords over longer stronger passwords
  2. There’s more chance for a keylogger to intercept a password
  3. There’s more chance for a physical observer to watch you enter a password
  4. It may desensitise users and lead to them automatically entering their password without checking a url

How does this balance this against the inherent insecurity of indefinitely extending a login’s lifetime?

It’s worth noting that Google doesn’t ever log me out of my mobile device – I wonder why it treats this environment differently? Security vs UX concerns?