Advertisement
didkoslawow

Untitled

May 18th, 2023
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.   const canCast = (state) => ({
  3.     cast: (spell) => {
  4.       console.log(`${state.name} cast ${spell}`);
  5.       state.mana--;
  6.     },
  7.   });
  8.  
  9.   const canFight = (state) => ({
  10.     fight: () => {
  11.       console.log(`${state.name} slashes at the foe!`);
  12.       state.stamina--;
  13.     },
  14.   });
  15.  
  16.   const fighter = (name) => {
  17.     let state = {
  18.       name,
  19.       health: 100,
  20.       stamina: 100,
  21.     };
  22.  
  23.     return Object.assign(state, canFight(state));
  24.   };
  25.  
  26.   const mage = (name) => {
  27.     let state = {
  28.       name,
  29.       health: 100,
  30.       mana: 100,
  31.     };
  32.  
  33.     return Object.assign(state, canCast(state));
  34.   };
  35.  
  36.   return {
  37.     mage,
  38.     fighter,
  39.   };
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement