humus-old/client/ui/damage.js

61 lines
1.4 KiB
JavaScript
Raw Normal View History

2019-04-19 00:51:18 -05:00
// 3rd party.
2019-04-21 16:31:43 -05:00
import React from 'react';
2019-04-19 00:51:18 -05:00
// 2nd party.
import {compose} from '@avocado/core';
import contempo from 'contempo';
// 1st party.
import {usePropertyChange} from './hooks/use-property-change';
2019-04-19 00:51:18 -05:00
const decorate = compose(
contempo(`
.damage {
position: absolute;
top: 0;
left: 0;
overflow: hidden;
}
.particle .text {
display: inline-block;
font-family: monospace;
2019-04-22 21:02:24 -05:00
font-size: 0.6em;
2019-04-19 00:51:18 -05:00
font-weight: bold;
2019-04-20 16:04:15 -05:00
text-shadow: 0.5px 0.5px 0px black;
2019-04-19 12:16:28 -05:00
}
.particle .text.fire.is-damage {
2019-04-20 22:17:32 -05:00
color: #FFA500;
2019-04-22 00:44:53 -05:00
text-shadow:
0.5px 0.5px black,
-0.125px -0.125px black,
-0px -0px 3px #FFDD00,
-0px -0px 10px #FFFF00
;
2019-04-19 12:16:28 -05:00
}
.particle .text.is-healing {
color: #00FF77;
text-shadow: -0.25px -0.25px 0px #0077FF, 0.5px 0.5px black;
text-shadow:
0.5px 0.5px black,
-0.125px -0.125px black,
-0px -0px 3px #00DDFF,
-0px -0px 10px #0000FF
;
2019-04-19 00:51:18 -05:00
}
`),
);
const DamageComponent = ({app}) => {
const camera = usePropertyChange(app.stage, 'camera');
const areaSize = usePropertyChange(camera, 'areaSize', [0, 0]);
const realOffset = usePropertyChange(camera, 'realOffset', [0, 0]);
return <div
className="damage unselectable"
style={{
transform: `translate(-${realOffset[0]}px, -${realOffset[1]}px)`,
width: `${areaSize[0]}px`,
height: `${areaSize[1]}px`,
}}
></div>;
2019-04-19 00:51:18 -05:00
}
export default decorate(DamageComponent);