Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by ChellesGabriel · Dec 27, 2016 at 03:39 PM · c#logic

Help me with Damage system please

Hey Guys, first , sorry about my English...

I'm having a logic problem in my C # script to calculate the damage received when it was attacked, Every time I click the ReceivedDamage button, it calls the function "public void RecebeDano ()", if i don't have the basicShield equipped, the received damage is correct, but, When basciShield is equipped (basicShieldActive = 1), when I press the receive damage button, the damage received does not subtract from the hp, but rather adds, i have two script, levelUp(Take care of the calculation of exp and level up) and GoldAndShop(take care of the shields, gold you have and prices), What could I be doing wrong?

 float hp;
 public Text hpText;
 public GoldAndShop goldAndShop;

 public void RecebeDano(){//The method that is going wrong
         if(estado==1){
             float damage = randomDamage();
             float defenceDamage;
             float finalDamage;
 
             if(GoldAndShop.basicShieldActive == 0){//the damage receveid is correct
                 hp -= damage;
                 contDano++;
                 hpText.text = "Hp: " + hp;
                 Debug.Log("Damage Received: " + damage);
                 if(damage>60){Debug.Log("Critic");}
             }
 
             if(GoldAndShop.basicShieldActive == 1){//the damage received is wrong
                 defenceDamage = damage * GoldAndShop.basicDefence;
                 finalDamage = defenceDamage - damage;
                 hp -= finalDamage;
                 hpText.text = "Hp: " + hp;
                 contDano++;
                 Debug.Log("Damage Received: " + damage);
                 Debug.Log("Defended 10%");
                 Debug.Log("Defended: " + defenceDamage);
                 if(damage>60){Debug.Log("Critic");}
             }
                 if(hp<=0){
                     estado = 0;
                     Debug.Log("GAME OVER");
                 }
         }
     }


Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by springwater · Dec 27, 2016 at 06:16 PM

              finalDamage = defenceDamage - damage;
              hp -= finalDamage;
              hpText.text = "Hp: " + hp;  <----------CHANGE THIS TO MINUS  MABEy?
              contDano++;
              Debug.Log("Damage Received: " + damage);
Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image TheGreyRaveen · Dec 27, 2016 at 06:21 PM 0
Share

I suppose Your answer is probably incorrect. The line hpText.text = "Hp: " + hp; is responsible for displaying string "Hp: 100" for exxample. That '+' operator is for adding strings together. I think my answer (below) to this thread is correct, if I'm not mistaken of course.

avatar image
0

Answer by TheGreyRaveen · Dec 27, 2016 at 06:18 PM

From the picture I attached below you can see that there are two possibilites why is this happening: 1. damage < 0 AND GoldAndShop.basicDefence > 1 2. damage > 0 AND GoldAndShop.basicDefence < 1

I guess damage is rather higher than zero so the problem probably lies in basicDefence < 1. I suppose you wanted basicDefence to be some kind of a percentage multiplier. In that case you want to write the code like this:

 if(GoldAndShop.basicShieldActive == 1){
                  hp -= damage * GoldAndShop.basicDefence;

alt text

Hope it helps!


notes.png (439.2 kB)
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by ChellesGabriel · Dec 28, 2016 at 05:15 AM

Thanks for the personal help, I managed to fix it, it was only multiply by -1 that worked, now why I said I have no idea.

  defenceDamage = damage * GoldAndShop.basicDefence;
  finalDamage = defenceDamage - damage;
  hp -= finalDamage * -1; // justa this multiplication, to transform the result to negative, Why??
  hpText.text = "Hp: " + hp;


Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

288 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Why do nested if statements act differently than the && operator? 1 Answer

Switch-Case Statements and stateInfo.fullPathHash 1 Answer

Select random number in series 1 Answer

How does 'Super Mario custom level' implement? 0 Answers

Area filling like Paper.io using fllod fill algorithm 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges