| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/bash
- # Defaults
- FEAT_COUNT=1
- SUCCESS_COUNT=0
- # Help function
- show_help() {
- echo "Usage: $0 [FEAT_DICE] [SUCCESS_DICE]"
- echo ""
- echo "Arguments:"
- echo " FEAT_DICE Number of 1d12 Feat Dice to roll (default: 1)"
- echo " SUCCESS_DICE Number of 1d6 Success Dice to roll (default: 0)"
- echo ""
- echo "Options:"
- echo " -h, --help Show this help message"
- echo ""
- echo "Examples:"
- echo " $0 # Rolls 1 Feat Die"
- echo " $0 1 3 # Rolls 1 Feat Die and 3 Success Dice"
- echo " $0 2 0 # Rolls 2 Feat Dice"
- exit 0
- }
- # Check for help flag
- if [[ "$1" == "-h" || "$1" == "--help" ]]; then
- show_help
- fi
- # Check for arguments
- if [[ "$1" =~ ^[0-9]+$ ]]; then
- FEAT_COUNT=$1
- if [[ "$2" =~ ^[0-9]+$ ]]; then
- SUCCESS_COUNT=$2
- fi
- fi
- # Colors and formatting
- BOLD='\033[1m'
- RED='\033[31m'
- GREEN='\033[32m'
- CYAN='\033[36m' # Using Cyan for Gandalf as it's bright/distinct
- RESET='\033[0m'
- # Function to generate a random number between 1 and max
- roll() {
- local max=$1
- # Read 2 bytes from /dev/urandom, convert to decimal, modulo max, add 1
- # This provides better randomness than $RANDOM
- val=$(od -An -N2 -tu2 /dev/urandom)
- echo $(( (val % max) + 1 ))
- }
- echo -e "${BOLD}Rolling for The One Ring...${RESET}\n"
- TOTAL=0
- # Roll Feat Dice (1d12)
- if [ "$FEAT_COUNT" -gt 0 ]; then
- echo -n -e "Feat Dice (${FEAT_COUNT}d12): "
- for ((i=0; i<FEAT_COUNT; i++)); do
- RESULT=$(roll 12)
- ((TOTAL+=RESULT))
-
- if [ "$RESULT" -eq 1 ]; then
- # Eye of Mordor
- echo -n -e "[ ${BOLD}${RED}1 (EYE)${RESET} ] "
- elif [ "$RESULT" -eq 12 ]; then
- # Gandalf
- echo -n -e "[ ${BOLD}${CYAN}12 (GANDALF)${RESET} ] "
- else
- echo -n "[ $RESULT ] "
- fi
- done
- echo ""
- fi
- # Roll Success Dice (1d6)
- if [ "$SUCCESS_COUNT" -gt 0 ]; then
- echo -n -e "Success Dice (${SUCCESS_COUNT}d6): "
- for ((i=0; i<SUCCESS_COUNT; i++)); do
- RESULT=$(roll 6)
- ((TOTAL+=RESULT))
-
- if [ "$RESULT" -eq 6 ]; then
- # Magnificent Outcome
- echo -n -e "[ ${BOLD}${GREEN}6 (MAGNIFICENT)${RESET} ] "
- else
- echo -n "[ $RESULT ] "
- fi
- done
- echo ""
- fi
- echo -e "\n${BOLD}Total Face Value: $TOTAL${RESET}"
|