Posts: 20 
	Threads: 5 
	Joined: Jul 2020
	
	 
 
	
	
		It has been a while since I last posted here. I’ve been using Kitsune's Extra Statistics combined with health/sp bars and such, and all works well.
I added a stat called Morale which also uses its own bar. When a battler for example has less than 25% morale this will give him/her a state with negative effects (low morale), but if a battler has more than 75% of the morale bar filled it will give a state with positive effects (high morale). A battler can lose morale by missing an enemy or losing a partymember, or can increase morale by defeating enemies and winning a battle. 
But there is a problem.
 
 
  1.png (Size: 727.04 KB / Downloads: 266)
There will be friends and enemies which shouldnt have a mental state, for example,  elementals, robots, zombies etc. (see where the red arrows point to in the picture). This means their state shouldnt change depending on their morale and their morale bar shouldnt show either. In fact, they shouldnt have it at all.
I tried working around it with a permanent state for those without morale called “no morale”. It sort of worked, but it quickly became a mess when I also tried removing the stat from showing for said friends/enemies inbattle.
Does anyone know what to do?
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 11,569 
	Threads: 672 
	Joined: May 2009
	
	 
 
	
		
		
		07-02-2023, 01:52 AM 
(This post was last modified: 07-02-2023, 02:17 AM by DerVVulfman.)
	
	 
	
		Well, the removal of the Morale bar itself could be as simple as wrapping the bar-drawing code in an if...endif block, or just adding some code before the stat is even drawn: 
Examples:
 
First, let's assume we're dealing with a list of 'actors' and/or enemies with no Morale to work with
 Code: IGNORE_ACTOR = [2,4,6,8] 
IGNORE_ENEMY = [1,5,6,12]
 
We can refer to these battlers at the very 'beginning' of a method like so:
 Code:   def draw_actor_morale(actor, x, y, width = 144) 
 
    # Just exit if the battler is in an excluded list 
    # (Added Enemies into the method for kicks) 
    if actor.is_a?(Game_Actor) 
      return if IGNORE_ACTOR.include?(actor.id) 
    else 
      return if IGNORE_ENEMY.include?(actor.id) 
    end 
 
    # Draw "Morale" text string 
    self.contents.font.color = system_color 
    self.contents.draw_text(x, y, 32, 32, "Morale") 
    # Calculate if there is draw space for MaxMorale 
    if width - 32 >= 108 
      morale_x = x + width - 108 
      flag = true 
    elsif width - 32 >= 48 
      morale_x = x + width - 48 
      flag = false 
    end 
    # Draw Morale 
    self.contents.font.color = actor.hp == 0 ? knockout_color : 
      actor.morale <= actor.maxmorale / 4 ? crisis_color : normal_color 
    self.contents.draw_text(morale_x, y, 48, 32, actor.morale.to_s, 2) 
    # Draw MaxMorale 
    if flag 
      self.contents.font.color = normal_color 
      self.contents.draw_text(morale_x + 48, y, 12, 32, "/", 1) 
      self.contents.draw_text(morale_x + 60, y, 48, 32, actor.maxmorale.to_s) 
    end 
  end
 
This example merely revents the 'text' of the Morale statistic from showing when the 'draw_actor_morale' is showing, just by exiting when an inappropriate battler is detected.  I don't know if your method to draw the morale stat and the morale bar are combined in one... though that would make it SO convenient.
 
An increase or decrease of the morale stat could be just as simple:
 Code: # Assume morale change is permitted 
    allow_morale = true 
 
    # Test if the actor or enemy doesn't change morale 
    if target.is_a?(Game_Actor) 
      allow_morale = false if IGNORE_ACTOR.include?(target.id) 
    else 
      allow_morale = false if IGNORE_ENEMY.include?(target.id) 
    end 
 
    # Change the morale if permitted 
    if allow_morale == true 
      target.morale += morale_change_value 
    end
 
Of course, this is conjecture as I don't see your code and the above clode assumes you (the developer) may pick and choose what actors and/or enemies have morale.
    It would be entertaining if an enemy's morale drops so badly he ESCAPES from combat!
	  
	
	
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links 
 
	
	
 
 
	
	
	
		
	Posts: 4,971 
	Threads: 611 
	Joined: Dec 2009
	
	 
 
	
		
		
		07-02-2023, 02:13 AM 
(This post was last modified: 07-02-2023, 02:13 AM by kyonides.)
	
	 
	
		Just a minor correction here... 
Code: if actor.is_a?(Game_Actor) 
      return if IGNORE_ACTOR.include?(actor.id) 
    else 
      return if IGNORE_ENEMY.include?(actor.id) 
    end
 
You don't conjugate the verb in Ruby.   
	 
	
	
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
  
 
 
 
 
My Original Stories (available in English and Spanish)
 
List of Compiled Binary Executables I have published...
 HiddenChest &  Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!   
Just some scripts I've already published on the board...
 KyoGemBoost XP VX & ACE,  RandomEnkounters XP,  KSkillShop XP,  Kolloseum States XP,  KEvents XP,  KScenario XP & Gosu,  KyoPrizeShop XP Mangostan,  Kuests XP,  KyoDiscounts XP VX, ACE & MV,  KChest XP VX & ACE 2016,  KTelePort XP,  KSkillMax XP & VX & ACE,  Gem Roulette XP VX & VX Ace,  KRespawnPoint XP, VX & VX Ace,  GiveAway XP VX & ACE,  Klearance XP VX & ACE,  KUnits XP VX, ACE & Gosu 2017,  KLevel XP,  KRumors XP & ACE,  KMonsterPals XP VX & ACE,  KStatsRefill XP VX & ACE,  KLotto XP VX & ACE,  KItemDesc XP & VX,  KPocket XP & VX,  OpenChest XP VX & ACE
 
	
	
 
 
	
	
	
		
	Posts: 11,569 
	Threads: 672 
	Joined: May 2009
	
	 
 
	
	
		Updated.  Been dealing with other coding recently.   
 
And neglected to include a minor consideration in the second example.
	 
	
	
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
  Above are clickable links 
 
	
	
 
 
	
	
	
		
	Posts: 20 
	Threads: 5 
	Joined: Jul 2020
	
	 
 
	
	
		Finally had time to work on the issue (wish I had more time for this). 
Works properly now. Thanks!
	 
	
	
	
	
 
 
	 
 |